查找元素包括List中的文本

时间:2013-08-15 14:31:00

标签: c# linq list search find

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

 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

3 个答案:

答案 0 :(得分:0)

检查值列表

primes.Contains(2)

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

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

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

答案 1 :(得分: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导致第二个3rt第四和第五个元素有2个内部或等于两个

答案 2 :(得分: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