我有一个像这样的 2D数组:
string[,] arr=
{
{"1","ali"},
{"2","mehdi"},
{"3","john"},
{"4","milad"},
};
我在第二列中搜索名称 语句,如下所示:
string name="";
for (int i = 0; i < arr.GetUpperBound(0); i++)
{
if (arr[i, 1].StartsWith("m"))
{
name = arr[i, 1];
break;
}
}
Response.Write(name);
我想使用 LINQ 代替 for 语句来获取以“m”开头的第一个名称。
如何将 for 语句转换为 LINQ 。
答案 0 :(得分:4)
var name = arr.Cast<string>()
.Where((x, i) => i % 2 == 1 && x.StartsWith("m"))
.First();
i % 2 == 1
只会从第二列中获取商品,而x.StartWith("m")
只会采用以'm'
开头的商品。
您必须在其他LINQ方法之前使用Cast<string>()
,因为多维数组不实现通用IEnumerable<T>
。