LINQ - 循环遍历2d数组的行

时间:2015-02-24 08:51:00

标签: c# arrays linq

我有一个像这样的二维字符串数组:

string myarr[,] = new string[100,4];

我想得到第二列上包含值vpp的行数。

即,通过正常循环,我会这样做:

int s = 0;
for(int i=0; i<100; i++)
{
  if( myarr[i,1] == "vpp" )
  {
    s++;
  }
}

我们怎样才能使用LINQ?

我相信,这将迭代2d数组的所有元素,而不是逐行循环:

s = (from string myRow in myarr where myRow  == "vpp"                                       
          select myRow).Count();

我现在在移动设备上(旅行和阅读)因为我无法访问Visual Studio,所以我刚刚输入了上面的代码。

谢谢

2 个答案:

答案 0 :(得分:4)

var count = Enumerable.Range(0, myarr.GetUpperBound(0)+1)
                      .Count(r => myarr[r,1] == "vpp");

答案 1 :(得分:1)

var s = Enumerable.Range(0, myarr.GetLength(0)).Count(index => myarr[index, 1] == "vpp");