我有一本字典
private Dictionary<string, string> ScannerMessages;
然后我打电话给这个
public bool equalMessages()
{
lock (lockObj)
{
return (ScannerMessages.Values.ToList().Distinct().Count() < ScannerMessages.Values.ToList().Count) ? true : false;
}
}
如果消息相同则返回。我还需要在该子句的末尾添加第二个检查以验证值是否为空或空。我试图做这样的事情,但我不知道在哪里可以使用LINQ语句(在LINQ中不是最好的)......
public bool equalMessages()
{
lock (lockObj)
{
return ((ScannerMessages.Values.ToList().Distinct().Count() < ScannerMessages.Values.ToList().Count) && (ScannerMessages.Keys.First() *get the value here and check it !null or string.empty) ? true : false;
}
}
答案 0 :(得分:2)
要验证所有值都不为null或为空:
ScannerMessages.Values.All(s => !string.IsNullOrEmpty(s))
如果所有值都不为空且不为空,则返回true。
答案 1 :(得分:1)
如果要获取非空值,可以执行以下操作:
ScannerMessages.Values.Where(v=>!string.IsNullOrEmpty(v)).ToList()
或只是为了获得点数
ScannerMessages.Values.Where(v=>!string.IsNullOrEmpty(v)).Count()
或
ScannerMessages[ScannerMessages.Keys.First()].Where(v=>!string.IsNullOrEmpty(v)).Count()