我遇到了另一个 Linq 问题。因为我不确定是否还有其他方法可以做到这一点。这是我要转换的内容:
class ID
{
public string name {get; set;}
public int id {get; set;}
}
ID[] num1 = new ID[2] { {"david",1} , {"mark",2} };
ID[] num2 = new ID[3] { {"david",1} , {"david",2} };
for(int i = 0; i < num1.Length; i++)
{
for(int j = 0; j < num2.Length; j++)
{
if(num1.name.Equals(num2.name) && num1.num == num2.num)
{
Console.Writeline("name: " + num1.name + " id: " + num1.id);
//Do something
break; //to avoid useless iterations once found
}
}
}
这不是一个完美的代码,但希望它能够捕捉到我想要做的事情。目前我正在 Linq 中实现这个,如下所示:
var match =
from a in num1
from b in num2
where (a.name.Equals(b.name) && a.num == b.num)
select a;
//do something with match
我对 Linq 很陌生,所以我不确定这是否是最好的方法,或者是否有更“简单”的方法。因为看起来我只是将它转换为 linq 但本质上是相同的代码。
谢谢!