在C#中,LINQ提供了一系列用于条件判断的方法,如All
、Any
和Contains
,这些方法使得对集合进行条件检查变得非常方便和高效,操作符返回一个布尔值,即真或当一个序列中的部分或全部元素满足特定条件的假。
操作符 | 描述 |
---|---|
All | 返回一个值'True',如果序列中的所有元素满足谓词条件 |
Any | 确定通过搜索一个序列是否相同的任何元件满足规定的条件 |
Contains | 如果找到某个特定元素有一个序列返回一个“true”的值,如果序列不包含特定的元素,'false'值返回 |
All
All
方法用来检查集合中的所有元素是否都满足指定的条件。如果所有元素都满足条件,它将返回true
;如果任何一个元素不满足条件,返回false
。
C#List<Hero> heroes = new List<Hero>
{
new Hero("张飞",38,100,"蜀"),
new Hero("刘备",40,101,"蜀"),
new Hero("关羽",39,102,"蜀"),
new Hero("曹操",45,103,"魏"),
new Hero("孙权",31,104,"吴"),
new Hero("黄忠",45,105,"蜀"),
new Hero("夏侯惇",45,106,"魏")
};
var ret = heroes.All(x=>x.Age>10); //年龄全大于10
MessageBox.Show(ret.ToString());
Any
Any
方法用来检查集合中是否至少存在一个元素满足指定的条件。如果集合中有任何元素满足条件,它将返回true
;否则,返回false
。
C#private void btnSearch_Click(object sender, EventArgs e)
{
List<Hero> heroes = new List<Hero>
{
new Hero("张飞",38,100,"蜀"),
new Hero("刘备",40,101,"蜀"),
new Hero("关羽",39,102,"蜀"),
new Hero("曹操",45,103,"魏"),
new Hero("孙权",31,104,"吴"),
new Hero("黄忠",45,105,"蜀"),
new Hero("夏侯惇",45,106,"魏")
};
var ret = heroes.Any(x=>x.Age>40);//年龄是否有任意一个大于40
MessageBox.Show(ret.ToString());
}
Contains
Contains
方法用来检查集合中是否包含指定的元素。如果集合中包含该元素,它将返回true
;否则,返回false
。Contains
方法通常用于基本类型或引用类型的集合,对于引用类型,你可能需要重写Equals
和GetHashCode
方法来确保正确的比较逻辑。
C#List<string> lst = new List<string>();
lst.Add("A");
lst.Add("B");
lst.Add("C");
lst.Add("D");
var ret = lst.Contains("B");
MessageBox.Show(ret.ToString());
本文作者:rick
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!