ฉันมีคอลเล็กชันของ MyClass ที่ฉันต้องการสืบค้นโดยใช้ LINQ เพื่อรับค่าที่แตกต่างและกลับมาเป็นพจนานุกรม <string, string> เป็นผลลัพธ์ แต่ฉันไม่สามารถหาวิธีที่ฉันสามารถทำได้ง่ายกว่าฉัน ฉันกำลังทำอยู่ด้านล่าง รหัสทำความสะอาดอะไรที่ฉันสามารถใช้เพื่อรับพจนานุกรม <string, string> เป็นผลลัพธ์ของฉัน
var desiredResults = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
var queryResults = (from MyClass mc in myClassCollection
orderby bp.SomePropToSortOn
select new KeyValuePair<string, string>(mc.KeyProp, mc.ValueProp)).Distinct();
foreach (var item in queryResults)
{
desiredResults.Add(item.Key.ToString(), item.Value.ToString());
}
6
คุณต้องการทำอย่างไรกับกุญแจที่ซ้ำกัน ใช้เวลาก่อนและไม่สนใจสิ่งที่ตามมา? โปรดทราบว่าพจนานุกรมยังไม่ได้รับคำสั่งดังนั้นการสั่งซื้อของคุณในแบบสอบถามจะไม่มีผลกระทบ ...
—
จอนสกีต
บางทีสิ่งที่คุณกำลังมองหาคือการใช้งาน SortedDictionary ของ IDictionary มิฉะนั้นการเรียงลำดับในพจนานุกรมจะไม่มีประโยชน์
—
Fede