ฉันใช้คีย์เวิร์ด "select" และวิธีการขยายเพื่อส่งคืนIEnumerable<T>
ด้วย LINQ แต่ฉันต้องการส่งคืน generic Dictionary<T1, T2>
และไม่สามารถหาคำตอบได้ ตัวอย่างฉันเรียนรู้สิ่งนี้จากการใช้บางสิ่งในรูปแบบที่คล้ายกับสิ่งต่อไปนี้:
IEnumerable<T> coll = from x in y
select new SomeClass{ prop1 = value1, prop2 = value2 };
ฉันทำสิ่งเดียวกันด้วยวิธีการขยาย ฉันคิดว่าเนื่องจากรายการใน a Dictionary<T1, T2>
สามารถทำซ้ำได้เนื่องจากKeyValuePair<T1, T2>
ฉันสามารถแทนที่ "SomeClass" ในตัวอย่างด้านบนด้วย " new KeyValuePair<T1, T2> { ...
" แต่นั่นไม่ได้ผล (คีย์และค่าถูกทำเครื่องหมายว่าอ่านได้อย่างเดียวดังนั้นฉันจึงไม่สามารถรวบรวมรหัสนี้ได้ )
เป็นไปได้หรือฉันต้องทำหลายขั้นตอน?
ขอบคุณ
.ToDictionary(item => item.prop1, item => item.prop2);
เพื่ออธิบายตั้งค่าเช่นกัน