У меня есть два списка, список1 элементов размера 5 и список2 элементов размера 6. Я хочу итерации для большего размера списка (например, 6 в этом случае), используя foreach, но проблема в том, что я не использую условие, чтобы проверить, какой список больше. Итак, как я могу выполнить необходимую задачу.
if (list1.Count>list2.Count) // here I donot want to use if statement
{ // do it in 1 statement only
Size=list1.Count;
foreach (var item in list1)
{
// do something
}
}
else
{
Size = list2.Count;
foreach (var item in list2)
{
// do something
}
}
Вы можете переместить условие в foreach:
foreach(var item in (list1.Count > list2.Count ? list1 : list2))
{
// do stuff
}
Если у вас несколько списков (более 2), вы можете создавать коллекцию и получать максимум с помощью LINQ:
var myLists = new List<List<T>>(); // T is the generic type of your Lists, obviously
myLists.Add(list1);
myLists.Add(list2);
...
myLists.Add(listN);
// iterate over the largest one:
foreach (var item in myLists.First(l => l.Count == lists.Max(x=>x.Count)))
{
// do stuff
}
var list = list1.Count > list2.Count ? list1 : list2;
foreach(var item in list)
list
в «largeList» или что-то еще для большей ясности.
<
и поменяйте местами список: p