我有一个对象列表,其中的对象有一个Guid Id属性。检查Hashset中是否存在对象的单一属性值列表
我也有一个Hashset包含一堆Guid。
检查列表中的每个对象Guid是否存在于Hashset中的最快方法是什么,然后更新列表中Object的另一个属性(如果存在)?如果需要,我可以将Hashset更改为其他数据类型,但列表必须保持不变。
这里的类/枚举
public class Test
{
public Guid Id {get; set;}
public bool IsResponded {get; set;}
}
var clientResponses = new HashSet<Guid>();
var testRecords = new List<Test>();
这是我目前正在做
foreach (var test in testRecords)
{
if (clientResponses.Contains(test.Id))
test.IsResponded = true;
}
“最快的方式”是指从耗时编码的角度,还是从应用程序的性能角度? –
这似乎是对我来说最好的方法。一个更好的问题是你的性能要求到底是什么,这是否符合他们的要求?如果确实如此,则无需尝试对其进行优化。 – juharr
首先你可以写'test.IsResponded = clientResponses.Contains(test.Id)'。除此之外,我认为这是最好的解决方案。 – Toxantron