如果为空,如何按顺序添加默认元素?使用DefaultIfEmpty()

时间:2010-07-11 23:48:26

标签: c# linq-to-sql

我有查询可能没有序列上的任何元素,我想在序列中添加一个元素,如果是空的。

var results = _context.Documents.Select(document => document.MimeType).Distinct().ToList().DefaultIfEmpty("There is nothing to be used as MimeType");

但仍然序列为空,但使用的是DefaultIfEmpty方法。

1 个答案:

答案 0 :(得分:1)

是的,您可以将DefaultIfEmpty()用于此目的。 (但请注意,查询中的ToList()是多余的。)

例如:

string[] s1 = new string[] { };
string[] s2 = new string[] { "abc" };

// Outputs "DEFAULT" because the sequence s1 is empty.
foreach (var s in s1.DefaultIfEmpty("DEFAULT"))
    Console.WriteLine(s);

// Outputs "abc" from the sequence s2 and nothing else.
foreach (var s in s2.DefaultIfEmpty("DEFAULT"))
    Console.WriteLine(s);
相关问题