我有一个数组s [],我用它来设置:
string [] s;
s = data.Split(',');
我可以使用foreach获取s中的元素:
foreach (string c in s)
{
list.Items.Add(c);
}
但是我想写一个接近c值的c的序列,即它将显示在列表中:
0 hello
1 world
2 earth
我没有在foreach中使用计数器,还有其他方法吗?
答案 0 :(得分:3)
你必须使用一个计数器。您可以在foreach中使用一个,或使用for
循环并使用其计数器。
编辑:好吧,如果你从一个空列表开始,你可以在循环中使用list.Items.Count
来打印列表中当前的项目数,尽管这是真的不是一个很好的方法。
// ugly
foreach (string c in s)
{
list.Items.Add(list.Items.Count + " " + c);
}
答案 1 :(得分:3)
显而易见的是使用常规循环:
for (int i = 0; i < c.Length; i++) {
list.Items.Add(i.ToString() + " " + c[i]);
}
如果您绝对想要使用foreach
而不使用计数器变量,则可以使用Select
将每个字符串与其索引捆绑在一起:
foreach (var c in s.Select((str, i) => new { Value = str, Index = i })) {
list.Items.Add(c.Index.ToString() + " " + c.Value);
}
答案 2 :(得分:0)
没有其他方法可以给你的代码。
要么你这样做:
string [] s= {"0 Hello","1 World", "2 earth"};
//your simple foreach loop
或者你这样做:
int counter=0;
foreach (string c in s)
{
list.Items.Add(counter++ + " " + c);
}
或更改您的代码,使用for循环
foreach (int i=0;i<s.Length;i++)
{
list.Items.Add(i + " " + c[i]);
}