关于select、where 基础
刚开始看linq
问题:下面2句,分别用where,select ,有什么区别,查询结果是不是都一样
orders是List<Order>
var ordByCountry = orders.Where(order => order.ShipCountry.Equals(country));
var ordByCountry = orders.Select(order => order.ShipCountry.Equals(country));
public class Order
{
private int orderID;
private string customerID;
private decimal freight;
private string shipName;
private string shipAddress;
private string shipCity;
private string shipCountry;
public int OrderID { get; set; }
public string CustomerID { get; set; }
public decimal Freight { get; set; }
public string ShipName { get; set; }
public string ShipAddress { get; set; }
public string ShipCity { get; set; }
public string ShipCountry { get; set; }
}
[解决办法]
修改一下
var v = list.Select(x => x = 5);返回 5,5,5,5,5,5,5,5,5,5 10个5
[解决办法]
where和select怎么会一样呢
你自己构造点数据,执行下边两个语句就明白了:
var ordByCountry = orders.Where(order => order.ShipCountry.Equals(country));
var ordByCountry1 = orders.Select(order => order.ShipCountry);
[解决办法]
修改下
比如说
int[] data = { 1, 2, 3, 4, 5, 6 };var result = data.Where(x => x > 3).ToList();和
var result = new List<int>();结果都是
foreach (int i in data)
{
if (i > 3) result.Add(i);
}
var result = data.Select(x => x > 3).ToList();和
var result = new List<bool>();结果都是
foreach (int i in data)
{
result.Add(i > 3); //也就是 if (i > 3) result.Add(true); else result.Add(false);
}