Where方法用来做条件筛选,从集合、数组等对象中获取满足条件的元素
参考代码:
1.Lambda获取集合中大于4的数字:
var Number = data.ListInt.Where(n => n > 4);
Console.WriteLine(string.Join(' ', Number));
2.Linq语法获取集合中大于4的数字:
var Number1 = from d in data.ListInt
where d > 4
select d;
Console.WriteLine(string.Join(' ', Number1));
以上两种写法是等价的。
3.Where方法还有一个使用2个参数的重载方法
演示Where方法两个参数的重载,第一个参数为元素,第二个为元素的索引(计算元素大于元素乘元素的索引),第二个参数为元素在集合中的索引
var Number2 = data.ListInt.Where((n, m) => n > n * m);
Console.WriteLine(string.Join(' ', Number2));
下面再演示下查询字符型集合
1.查询字符串长度大于2的
var listStr = data.ListStr.Where(s => s.Length > 2);
Console.WriteLine(string.Join(' ', listStr));
2.使用Linq语法查询
var listStr1 = from s in data.ListStr
where s.Length > 2 && s.IndexOf("q") > -1
select s;
Console.WriteLine(string.Join(' ', listStr1));
3.演示重载方法(第二个参数为元素索引)
var listStr2 = data.ListStr.Where((s, i) => s.Length > 2 && i > 4);
Console.WriteLine(string.Join(' ', listStr2));
输出结果如下:
集合元素代码:
public class DataList
{
public List<string> ListStr;
public List<int> ListInt;
public DataList()
{
ListStr = new List<string>()
{
"abc" ,"def","ghi","jkl","mno","pqr","stu","vwx","yz"
};
ListInt = new List<int>()
{
1,2,3,4,5,6,7,8,9,10
};
}
}