集合变量问题

时间:2011-02-03 23:47:35

标签: c# generic-collections

让我们说我有一个字符串格式的泛型集合。我希望将这些值添加到标签中我将如何去做我已经尝试了一些我在这里读过的东西,但似乎无法让它工作。

List<string> listcollection= new List<string>();

....Populate Collection Here....

MsgLabel.Text = Controls[string.Format(("MyInts: {0}", listcollection[1].Text));

任何帮助都会很棒。

感谢。

3 个答案:

答案 0 :(得分:4)

有多种方法可以理解您的问题:

  • 您想要提取第二个值并将其放在标签中,如示例
  • 所示
  • 您想将所有值组合成一个列表(MyInts是复数)

提取第二个值

MsgLabel.Text = string.Format("MyInts: {0}", listcollection[1]);

将它们组合

您可能正在寻找string.Join

这适用于您发布的示例:

MsgLabel.Text = string.Format("MyInts: {0}", string.Join(", ", listcollection));

该代码需要.NET 4.0,否则string.Join需要一个数组,所以如果你不是4.0,那么你需要以下代码:

MsgLabel.Text = string.Format("MyInts: {0}", string.Join(", ", listcollection.ToArray()));

答案 1 :(得分:0)

如果要创建字符串的泛型集合,则不应调用“Text”属性集合[idx] .Text。只需使用.Join或从集合中提取特定元素。

答案 2 :(得分:0)

如果你想把所有的字符串组合起来(在我看来你想要这样做),你可以这样做:

List<string> listcollection = new List<string>();
string myText = string.Empty;
for (int i = 0; i < listcollection.Count; i++) {
   myText += ("string no. " + (i - 1).ToString() + ": " + listcollection[i] + Environment.NewLine);
}
MsgLabel.Text = myText;

或使用,代替Environment.NewLine,如果您想按,

分割它

编辑:请参阅Lasse V. Karlsen的评论以获得更快的解决方案。谢谢你的提示!