如果集合为空,如何返回默认值?

时间:2012-11-02 01:50:32

标签: c# .net linq

FeesFee个对象的集合。)

如果费用集合为空,我想将0的默认值分配给FeeValue

以下是我目前的工作。但是,我宁愿不一个费用实例。有什么替代方法可以写这个?谢谢!

from w in Widgets
select new {
  FeeValue = w.Fees.DefaultIfEmpty(new Fee()).First().Value, // Value is a Double
};

2 个答案:

答案 0 :(得分:4)

你的问题有点令人困惑,但我想我知道你在问什么......

这样的事情:

Widgets
    .Select(w => 
        new 
        {
            FeeValue = w.Fees.Select(f => f.Value).DefaultIfEmpty(yourDefaultValue)
        });

答案 1 :(得分:0)

如果你想避免空的Select(),这也应该有效:

Widgets
.Select(w => 
    new 
    {
        FeeValue = w.Fees.DefaultIfEmpty(yourDefaultValue).First()
    });