一、firstordefault() 和 first()
class Program
{
static void Main(string[] args)
{
List<Emp> list = new List<Emp> {
new Emp{ Id="001", Name="张三", Age="10", Address="河北石家庄"},
new Emp{ Id="002", Name="李四", Age="15", Address="山东济南"},
new Emp{ Id="003", Name="王五", Age="23", Address="河南郑州"}
};
//firstordefault 如果找不到返回默认值 first如果找不到会发生异常
var emp = list.Where(m => m.Name == "张三").FirstOrDefault();
Console.WriteLine(emp);
var emp2 = list.Where(m => m.Name == "").First();
Console.WriteLine(emp2);
}
}
class Emp
{
public string Id { get; set; }
public string Name { get; set; }
public string Age { get; set; }
public string Address { get; set; }
}

二、last() lastordefault()
class Program
{
static void Main(string[] args)
{
List<Emp> list = new List<Emp> {
new Emp{ Id="001", Name="张三", Age="10", Address="河北石家庄"},
new Emp{ Id="002", Name="李四", Age="15", Address="山东济南"},
new Emp{ Id="003", Name="王五", Age="23", Address="河南郑州"},
new Emp{ Id="004", Name="王五", Age="45", Address="天津武清"}
};
//lastOrdefult 和last 如果找不到返回默认值 last如果找不到会发生异常
var emp = list.Where(m => m.Name == "王五").LastOrDefault();
Console.WriteLine(emp.Address);
var emp2 = list.Where(m => m.Name == "").Last();
Console.WriteLine(emp2);
}
}
class Emp
{
public string Id { get; set; }
public string Name { get; set; }
public string Age { get; set; }
public string Address { get; set; }
}
}

三、singe() singleordefault 唯一结果查询,超过一个结果报异常
static void Main(string[] args)
{
List<Emp> list = new List<Emp> {
new Emp{ Id="001", Name="张三", Age="10", Address="河北石家庄"},
new Emp{ Id="002", Name="李四", Age="15", Address="山东济南"},
new Emp{ Id="003", Name="王五", Age="23", Address="河南郑州"},
new Emp{ Id="004", Name="王五", Age="45", Address="天津武清"}
};
// single 和singleordefault 如果序列超过一个会报异常,常用唯一结果查询
var emp = list.Where(m => m.Name == "王五").SingleOrDefault();
Console.WriteLine(emp.Address);
var emp2 = list.Where(m => m.Name == "王五").Single();
Console.WriteLine(emp2);
}
}
class Emp
{
public string Id { get; set; }
public string Name { get; set; }
public string Age { get; set; }
public string Address { get; set; }
}

本文详细介绍了LINQ中firstordefault(), first(), last(), lastordefault(), single() 和 singleordefault()等查询方法的使用技巧及注意事项。这些方法用于从集合中检索元素,通过实例演示了如何处理查询不到结果的情况,避免异常并返回合适的默认值。
57

被折叠的 条评论
为什么被折叠?



