[英]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.