如果找不到任何内容,如何为LINQ返回特定值?

时间:2012-06-13 01:53:39

标签: c# linq

似乎我偶然发现了LINQ并且只是设法看到了它的用处。我不确定我是否要求太多,或者我是不是做得不对。我有以下笨拙的代码,

class CStation{
    public String Make;
    public List<ulong> TunedStations;
}

List<List<ulong>> mStations=(from t in Radios where t.Make==aMake select t.TunedStations).ToList();
if(mStations.Count!=0)
    return mStations[0];
return null;

功能是的,但我可以用LINQ怎么做呢?

2 个答案:

答案 0 :(得分:6)

只需使用

return (from t in Radios where t.Make==aMake select t.TunedStations).FirstOrDefault(); 

答案 1 :(得分:2)

您可以使用:

var myDefault = ......;

return (from t in Radios 
        where t.Make==aMake 
        select t.TunedStations)
       .FirstOrDefault() ?? myDefault ; 

或作为lambda

    var myDefault = ......;
    
    return Radios.Where(t => t.Make == aMake)
           .FirstOrDefault() ?? myDefault ; 

这些将返回集合中的第一个项目或默认值(如果要返回null,则只返回?? myDefault