foreach ループ内の foreach:
var list1 = new List<int>() {0,1,2,3,4,5,6,7,8,9};
var list2 = new List<int>() {9,8,7,6,5,4,3,2,1,0};
foreach (var list1Value in list1)
{
foreach (var list2Value in list2)
{
if (list1Value == list2Value)
// do something
}
}
または foreach ループ内の IEnumerable
var list1 = new List<int>() {0,1,2,3,4,5,6,7,8,9};
var list2 = new List<int>() {9,8,7,6,5,4,3,2,1,0}
var enumerator = (System.Collections.IEnumerator)list2.GetEnumerator();
foreach (var list1Value in list1)
{
enumerator.Reset();
while (enumerator.MoveNext())
{
if (list1Value == (int)enumerator.Current)
// Do something
}
}
私は読みやすさのために前者を好みますが、後者の方が効率的だと思います。コードは単なる例であり、実際に実行しているコードを示すものではないことに注意してください。