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