LINQ语句字典第一个键的值

时间:2014-04-16 14:32:08

标签: linq dictionary

我有一本字典

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;
        }
    }

2 个答案:

答案 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()