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);

10-07 20:19