C# 如何检查空集合?

C# 如何检查空集合?,c#,linq,C#,Linq,我有从reportData集合中选择数据的算法 但如果AgentID是一个空集合呢?如何检查这种情况 var agentReportItems = from data in reportData from agentId in data.AgentIds where agentIds != null && agentIds.Contains(agentId)

我有从reportData集合中选择数据的算法

但如果AgentID是一个空集合呢?如何检查这种情况

 var agentReportItems = from data in reportData
                        from agentId in data.AgentIds
                        where agentIds != null && agentIds.Contains(agentId)
                        group data by agentId;
只需检查它是否为null,如果不是,则按您已经做过的那样使用它


只需检查它是否为空,如果不是,则按您已经使用的方式使用它。

您发布的逻辑将适用于“空集合”

但是,假设您的意思是null而不是“empty”,这就是an的用途


您发布的逻辑将适用于“空集合”

但是,假设您的意思是null而不是“empty”,这就是an的用途


您可以使用.Any快速检查枚举是否为空


请注意,“null”并不意味着列表为空。Null表示列表中完全没有。您可以使用.Any快速检查可枚举项是否为空


请注意,“null”并不意味着列表为空。Null表示列表中完全没有元素。

如果它不是Null,但没有元素怎么办?@Anatoly如果agentID为空,您希望它做什么?如果agentID为空,则agentID.ContainsagentId已返回false。如果它不是null,但没有元素,该怎么办?@Anatoly如果agentID为空,您希望它做什么?如果AGENTID为空,则AGENTID.ContainsagentId已返回false。
 var agentReportItems = from data in reportData
                        from agentId in data.AgentIds
                        where agentIds != null && agentIds.Contains(agentId)
                        group data by agentId;
private IDictionary<Guid, JobStatistic> GetAgentsStatistics(IList<Guid> agentIds)
{
    if (agentIds == null)
        throw new ArgumentNullException("agentIds"); // use nameof(agentIds) instead of "agentIds" if using C# 6 or later

    var agentReportItems = from data in reportData
                           from agentId in data.AgentIds
                           where agentIds.Contains(agentId)
                           group data by agentId;
    //...
}
if (!agentIds.Any()) //It's empty.
{
    throw new ArgumentException("agentIds cannot be empty.");
}