如果我有这个ConcurrentDictionary:
public class User
{
public string Context { get; set; }
public bool Owner { get; set; }
}
protected static ConcurrentDictionary<User, string> OnlineUsers = new ConcurrentDictionary<User, string>();有谁知道如果我已经有了Owner的值,我将如何获得Context的值?基本上,我想使用Context进行“查找”。谢谢。
发布于 2012-09-22 03:36:08
听起来你需要一个Dictionary<string, User>,当给定上下文作为string时,它会告诉你它对应的是哪个User。如果您需要多次执行此查找,并且使用额外的内存没有问题,那么创建这样一个字典可能是值得的。
如果您只打算搜索一两次,或者映射将频繁更改而无法使字典保持最新,那么您可以简单地使用foreach循环或使用First或Where等LINQ方法对字典进行线性搜索,如其他答案中所示。
发布于 2012-09-22 03:30:11
有什么阻止你使用标准的Linq FirstOrDefault()方法的吗?
var item = OnlineUsers.FirstOrDefault(kvp => kvp.Key.Context == myContext);发布于 2012-09-22 03:35:04
像这样的
var ou = OnlineUsers.First(x => x.Key.Context == "TADA");https://stackoverflow.com/questions/12536982
复制相似问题