簡體   English   中英

C#獲取字典類的值

[英]C# get Dictionary class value

我的詞典有小問題。

這是一點點代碼:

string user = UserList
  .Where(p => p.Key == im.SenderConnection.RemoteUniqueIdentifier)
  .Select(p => p.Value.Username)
  .ToString();
Console.WriteLine(user);

public class User
{
        public string Username;
}

然后寫入控制台:

System.Linq.Enumerable + WhereSelectEnumerableIterator2 [System.Collections.Generic.KeyValuePair2 [System.Int64,ChatServer.User],System.String]

因為您要在Select的結果上調用ToString

Select是一個投影..因此,它仍然返回一個集合。 您應該調用FirstOrDefault並檢索名稱:

string user = UserList
    .Where(p => p.Key == im.SenderConnection.RemoteUniqueIdentifier)
    .Select(p => p.Value.Username)
    .First();

Console.WriteLine(user);

或更短:

string user = UserList
    .First(p => p.Key == im.SenderConnection.RemoteUniqueIdentifier)
    .Value.Username;

嘗試這個

string user = UserList.Where(p => p.Key == im.SenderConnection.RemoteUniqueIdentifier).Select(p => p.Value.Username).FirstOrDefault().ToString();

您正在選擇過濾的用戶列表,而不是特定用戶。 將您的過濾器添加到FirstOrDefault以獲取特定用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM