📜  在列表中查找元素而不是在另一个列表中 c# (1)

📅  最后修改于: 2023-12-03 15:37:40.297000             🧑  作者: Mango

在列表中查找元素而不是在另一个列表中 - C#

有时我们需要检查一个元素是否存在于列表中。C#提供了对List的支持,可以方便地进行这样的操作。

列表中查找元素

我们可以使用List的Contains方法查找元素。如果元素存在于列表中,则返回true,否则返回false。例如:

List<string> fruits = new List<string>() { "apple", "banana", "orange" };
bool existApple = fruits.Contains("apple"); // 返回true
bool existGrape = fruits.Contains("grape"); // 返回false
另一个列表中查找元素

如果我们需要在另一个列表中查找元素是否存在,我们可以使用List的Intersect方法。Intersect方法返回两个列表中共同存在的元素。如果列表中不存在共同元素,则返回空列表。例如:

List<string> list1 = new List<string>() { "apple", "banana", "orange" };
List<string> list2 = new List<string>() { "banana", "grape", "peach" };
IEnumerable<string> commonFruits = list1.Intersect(list2); // 返回"banana"

但是,Intersect方法返回的是两个列表中共同存在的元素列表,而不是单个元素是否存在的布尔值。因此,我们需要将返回的列表转换为单个布尔值。我们可以使用Any方法。Any方法检查列表是否包含任何元素。如果列表不为空,则返回true,否则返回false。例如:

bool existBanana = list1.Intersect(list2).Any(); // 返回true
bool existGrape = list1.Intersect(list2).Contains("grape"); // 返回true
总结

在C#中,我们可以使用List的Contains方法查找元素是否存在于列表中。使用Intersect方法查找另一个列表中共同的元素,再使用Any方法将其转换为单个布尔值。