我有以下代码。我想将for
循环替换为lambda或LINQ表达式以返回我的字符串。
string[,] testval = new string[3,2]
testval[0, 0] = "0"
testval[0, 1] = "string A"
testval[1, 0] = "5"
testval[1, 1] = "string B"
testval[2, 0] = "13"
testval[2, 1] = "string C"
string teststring = "13"
for (int i=0; i<=testval.GetUpperBound(0);i++)
{
if (testval[i,0] == teststring) { return testval[i,1]; }
}
return null;
我是lambda和LINQ表达式的新手。有人可以帮帮我吗?
答案 0 :(得分:2)
您可以使用Enumerable.Range()
生成要迭代的整数序列,然后构建一个Linq查询:
var result = Enumerable.
.Range(0, testval.GetUpperBound(0)+1)
.Where(i => testval[i,0] == teststring)
.Select(i => testval[i,1])
.FirstOrDefault();
要使用查询语法或其他方法,请查看this excellent answer。