C# 相同条件下的多个值
有没有其他方法可以优化下面的代码?我觉得下面的代码对于它执行的操作来说是巨大的C# 相同条件下的多个值,c#,optimization,C#,Optimization,有没有其他方法可以优化下面的代码?我觉得下面的代码对于它执行的操作来说是巨大的 if ((currentElement == null || (firstGridRow["Low"].ToString() == string.Empty || firstGridRow["High"].ToString() == string.Empty || firstGridRow["Mean"].ToString() == string.Empty || firstGrid
if ((currentElement == null ||
(firstGridRow["Low"].ToString() == string.Empty ||
firstGridRow["High"].ToString() == string.Empty ||
firstGridRow["Mean"].ToString() == string.Empty ||
firstGridRow["StdDev"].ToString() == string.Empty)))
{
continue;
}
if (newRow.Length != 0)
{
AddColorList(currentElement, opid, currentLow, "Low", newRow, listCollectionLow);
AddColorList(currentElement, opid, currentHigh, "High", newRow, listCollectionHigh);
AddColorList(currentElement, opid, currentMean, "Mean", newRow, listCollectionMean);
AddColorList(currentElement, opid, currentStdDev, "StdDev", newRow, listCollectionStdDev);
}
您可以使用LINQ,如下所示:
private static readonly string[] AllKeys = new[] {"Low", "High", "Mean", "StdDev"};
if (currentElement == null || ALlKeys.Any(k => gridRow[k].ToString() == string.Empty)) {
...
}
if (newRow.Length != 0) {
foreach (var key in AllKeys) {
AddColorList(currentElement, opid, currentLow, key, newRow, listCollectionLow);
}
}
你应该问这个!!第一排是什么?循环是什么样子的?为什么每次循环迭代都要检查
firstGridRow[“Low”]
和其他列,即使它们总是同一行?@huMptyduMpty:在那边问这个问题。但很长一段时间没有回应。所以在这里问。@RanjithKumarGovarthanan:您可以使用string.IsNullOrEmpty(gridRow[key])here@Tobias对的但是,string
从来都不是null
,所以我不确定这在这里是否有用。它在哪里说string
从来都不是null
?@Tobias它来自ToString()
。尽管指南没有禁止ToString()
返回null
,但实际上它从来没有这样做。如果gridRow[key]为null,您将得到一个异常,因为不能对null对象调用ToString()。ToString()不会返回null,这是真的,但在null对象上调用它肯定会引发异常。