別の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に変換しているように見えるので、本質的に同じコードを実行します。
ありがとうございました!