using System;
using System.Linq;
public class Test
{
public static void Main()
{
var data = new[] {
new Something {SomeIntProperty=1, SomeStringProperty="A"}
, new Something {SomeIntProperty=2, SomeStringProperty="A"}
, new Something {SomeIntProperty=3, SomeStringProperty="A"}
, new Something {SomeIntProperty=4, SomeStringProperty="A"}
, new Something {SomeIntProperty=5, SomeStringProperty="A"}
, new Something {SomeIntProperty=6, SomeStringProperty="B"}
, new Something {SomeIntProperty=7, SomeStringProperty="B"}
, new Something {SomeIntProperty=8, SomeStringProperty="C"}
, new Something {SomeIntProperty=9, SomeStringProperty="D"}
};
var dict = data.GroupBy(s => s.SomeStringProperty)
.ToDictionary(g => g.Key);
foreach (var key in dict.Keys) {
if (data.Any(s => ReferenceEquals(s.SomeStringProperty, key))) {
Console.WriteLine("Key '{0}' is present.", key);
} else {
Console.WriteLine("Key '{0}' is not present.", key);
}
}
}
}
public class Something
{
public int SomeIntProperty { get; set; }
public string SomeStringProperty { get; set; }
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCnZhciBkYXRhID0gbmV3W10gewoJbmV3IFNvbWV0aGluZyB7U29tZUludFByb3BlcnR5PTEsIFNvbWVTdHJpbmdQcm9wZXJ0eT0iQSJ9CiwgICBuZXcgU29tZXRoaW5nIHtTb21lSW50UHJvcGVydHk9MiwgU29tZVN0cmluZ1Byb3BlcnR5PSJBIn0KLCAgIG5ldyBTb21ldGhpbmcge1NvbWVJbnRQcm9wZXJ0eT0zLCBTb21lU3RyaW5nUHJvcGVydHk9IkEifQosICAgbmV3IFNvbWV0aGluZyB7U29tZUludFByb3BlcnR5PTQsIFNvbWVTdHJpbmdQcm9wZXJ0eT0iQSJ9CiwgICBuZXcgU29tZXRoaW5nIHtTb21lSW50UHJvcGVydHk9NSwgU29tZVN0cmluZ1Byb3BlcnR5PSJBIn0KLCAgIG5ldyBTb21ldGhpbmcge1NvbWVJbnRQcm9wZXJ0eT02LCBTb21lU3RyaW5nUHJvcGVydHk9IkIifQosICAgbmV3IFNvbWV0aGluZyB7U29tZUludFByb3BlcnR5PTcsIFNvbWVTdHJpbmdQcm9wZXJ0eT0iQiJ9CiwgICBuZXcgU29tZXRoaW5nIHtTb21lSW50UHJvcGVydHk9OCwgU29tZVN0cmluZ1Byb3BlcnR5PSJDIn0KLCAgIG5ldyBTb21ldGhpbmcge1NvbWVJbnRQcm9wZXJ0eT05LCBTb21lU3RyaW5nUHJvcGVydHk9IkQifQp9Owp2YXIgZGljdCA9IGRhdGEuR3JvdXBCeShzID0+IHMuU29tZVN0cmluZ1Byb3BlcnR5KQogICAgICAgICAgICAgICAgICAgICAuVG9EaWN0aW9uYXJ5KGcgPT4gZy5LZXkpOwpmb3JlYWNoICh2YXIga2V5IGluIGRpY3QuS2V5cykgewoJaWYgKGRhdGEuQW55KHMgPT4gUmVmZXJlbmNlRXF1YWxzKHMuU29tZVN0cmluZ1Byb3BlcnR5LCBrZXkpKSkgewoJCUNvbnNvbGUuV3JpdGVMaW5lKCJLZXkgJ3swfScgaXMgcHJlc2VudC4iLCBrZXkpOwoJfSBlbHNlIHsKCQlDb25zb2xlLldyaXRlTGluZSgiS2V5ICd7MH0nIGlzIG5vdCBwcmVzZW50LiIsIGtleSk7Cgl9Cn0KCgl9Cn0KCnB1YmxpYyBjbGFzcyBTb21ldGhpbmcKewogICAgcHVibGljIGludCBTb21lSW50UHJvcGVydHkgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIHN0cmluZyBTb21lU3RyaW5nUHJvcGVydHkgeyBnZXQ7IHNldDsgfSAgCn0=