У меня есть некоторые списки, сделанные с использованием некоторых условий в C# .. Таким образом, если какое-либо условие является ложным, список остается пустым .. но мне все же нужно пересечь его с другими списками, чтобы получить окончательный вывод .. любые предложения, как это сделать ?Как пересечь несколько списков, если один из них будет пустым?
ответ
Enumerable.Intersect позволяет это сделать, даже если один IEnumerable<T>
пуст.
Однако, как только имеется хотя бы один пустой список, результат пересечения всегда будет пустым - это то, что вам нужно?
Если я вас правильно понял, вы могли бы использовать Count
свойство
List<Object> your_list = new List<Object>();
if(your_list.Count!=0){
// do your stuff
}
else{
//skip
}
Итак, после того, как у вас есть все ваши списки, поместить их в массив, то вы можете сделать, как показано ниже образец (предположим, у вас есть все списки строк)
var list1 = new List<string>();
var list2 = new List<string>();
var list3 = new List<string>();
var allLists = new List<string>[] { list1, list2, list3 };
// need to be sure you have >= 1 list(s)
var result = allLists[0];
for (int i = 1; i < allLists.Length; i++)
{
result = result.Intersect(allLists[i]).ToList();
}
// ok, you get the result
Я пересек список, как сказал Мэтт! – Rasika
Как простой статический метод:
static IEnumerable<T> Intersect<T>(params IEnumerable<T>[] lists)
{
return lists.Where(l => l.Any()).Aggregate((l1, l2) => l1.Intersect(l2));
}
Вы можете использовать его как
var list1 = new List<string>() { "abc", "cde" };
var list2 = new List<string>() { "abc", "xyz" };
var list3 = new List<string>();
var arrayOfLists = new List<string>[] {list1, list2, list3};
var paramList= Intersect(list1, list2, list3);
var arrayList = Intersect(listOfLists);
Будьте осторожны, чтобы передать массив вместо списка, в противном случае T является список, который возвращает первоначальный список.
- 1. Как пересечь несколько полигонов?
- 2. Как пересечь несколько IEnumerable?
- 3. Excel: если vlookup имеет несколько значений, возвращайте один из них
- 4. MVC Несколько MembershipProviders - один из них WebSecurity
- 5. Как пересечь несколько div?
- 6. Несколько списков, один выбор
- 7. столбцам, если один из них является нулевым
- 8. AdGroupAdService, если один из них отклонен
- 9. Как отменить одноранговые длительные задачи, если один из них остановлен
- 10. Один метод, несколько типов списков
- 11. Объединить несколько списков один на один
- 12. Как объединить несколько столбцов в один из них?
- 13. Как разобрать несколько параметров GET в URL-адрес, если один из них отключает другой?
- 14. Несколько подклассов, как, например, любой из них?
- 15. Как пересечь два полигона?
- 16. Вернуть строку, если выполняются два условия: один из них является совпадением, а один из них равен нулю в одной строке
- 17. CheckedTextViews будет случайным образом отображаться в списке, если я нажму на один из них.
- 18. Объединить несколько списков, если условие истинно
- 19. Запрос несколько списков в один присест
- 20. WCF: Как вы добавляете несколько MessageBodyMember в MessageContract, если один из них является потоком
- 21. Несколько divs, выбранных с помощью jQuery, выберите один из них: #
- 22. Снимите отметку с других флажков, если один из них отмечен
- 23. Как пересечь несколько деревьев в vb.net
- 24. WooCommerce - лимитирующие вариации, если один из них выбран
- 25. объединить несколько списков совпадений в один
- 26. Как пересечь несколько запросов с помощью MYSQL?
- 27. Как пересечь несколько многих из многих ассоциаций в activerecord
- 28. NSNotification несколько наблюдателей, только один из них называется
- 29. Как отобразить текст, если один из списков пуст из нескольких списков в андроидном фрагменте
- 30. Несколько клиентов RMI - один серверный объект для каждого из них
«... некоторые списки, использующие некоторые условия ...» Можете ли вы уточнить, что у вас есть, что вы хотите, что вы пробовали и что не получилось? В настоящее время это не совсем понятно. –
Просьба предоставить некоторые образцы кода, которые вы пробовали. Это поможет другим пользователям понять вопрос более ясным. – Golda
Вам нужно пересечь пустой список с непустым? Результат ВСЕГДА будет пустым, понимаете? – HimBromBeere