-3

我如何找到包含值的元素。

 List<int> primes = new List<int>(new int[] { 19, 23,2, 29,23 });

        int index =  primes.IndexOf(2); 
        label1.Text = index.ToString();
        for (int i = index+1; i < primes.Count; )
        {
            index = primes.IndexOf(2, i );
            label1.Text += "-" + index.ToString();
            i = index+1;
        }

输出:

 1-2-3-4
4

3 回答 3

0

检查值列表

primes.Contains(2)

知道每个元素的索引可以做

var foo = primes.Select((x, i) => new { x, i }).ToLookup(x => x.x, x => x.i);

这将对元素及其各自的索引进行分组

于 2013-08-15T14:40:32.977 回答
0
List<int> primes = new List<int>(new int[] { 19, 23,2, 29,23 });

for (int i = 0; i < primes.Count; i++)
{
    if (primes[i].ToString().Contains("2"))
        label1.Text = label1.Text += "-" + i;
}
label1.Text = label1.Text.Substring(1, label1.Text.Length - 1); // this line just removes the dath at the start of the label1.Text

此代码应该可以完成这项工作,但 label1.Text 将是 1-2-3-4 导致第 2 3 4 和第 5 个元素内部有 2 或等于 2

于 2013-08-15T14:48:51.383 回答
0

像这样的东西?

List<int> primes = new List<int>(new int[] { 19, 23, 2, 29, 23 });

label1.Text = String.Join("-", primes.Select((i, inx) => new { i, inx })
                                     .Where(x => x.i.ToString().Contains("2"))
                                     .Select(x => x.inx));

标签的文本将是1-2-3-4

于 2013-08-15T14:54:19.610 回答