我有一个像这样的二维字符串数组:
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,所以我刚刚输入了上面的代码。
谢谢
答案 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");