其中是linq查询样式的DefaultIfEmpty
本文关键字:样式 DefaultIfEmpty 查询 linq | 更新日期: 2023-09-27 18:07:06
var query = from r in list where r.Id == "" DefaultIfEmpty(String.Empty)
不工作
我如何写一个linq查询查询风格和使用DefaultIfEmpty方法?
假设您的列表包含您想要的类型Item
:
// define your default item
var defaultItem = new Item { ... };
var query = (from r in list where r.Id == "" select r).DefaultIfEmpty(defaultItem);
或方法语法
var query = list.Where( r => r.Id == "" ).DefaultIfEmpty(defaultItem);
但是如果你要选择Item
的特定字符串属性那么你可能需要像
var query = (from r in list where r.Id == "" select r.StringProperty)
.DefaultIfEmpty(string.Empty);
DefaultIfEmpty通常使用与JOINS
,(外连接)。你可以参见:How to:执行左外连接(c#编程指南)
对于你的情况,它似乎你想选择空字符串,如果r.Id是空的,你可以你可以做:
var query = from r in list
select new
{
ID = r.Id == null ? string.Empty : r.Id
};