كيف يمكنني تحويل القائمة<object> إلى Hashtable في C# ؟

StackOverflow https://stackoverflow.com/questions/166174

  •  03-07-2019
  •  | 
  •  

سؤال

لدي قائمة من الأشياء ، كل منها يحتوي على معرف ، رمز الوصف.

أنا في حاجة لتحويل هذه القائمة إلى Hashtable باستخدام الوصف كما المفتاح معرف حيث بلغت قيمة.

هذا Hashtable ثم يمكن إجراء تسلسل إلى JSON.

هل هناك طريقة لتحويل من قائمة<Object> إلى Hashtable دون كتابة حلقة للذهاب من خلال كل عنصر في القائمة ؟

هل كانت مفيدة؟

المحلول

دعونا نفترض أن لديك قائمة تحتوي على كائنات من نوع فو (مع int Id سلسلة الوصف).

يمكنك استخدام Linq لتحويل هذه القائمة في القاموس مثل هذا:

var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);

نصائح أخرى

إذا كان لديك الوصول إلى Linq, يمكنك استخدام ToDictionary وظيفة.

theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });

ننظر أيضا في System.Collections.ObjectModel.KeyedCollection<TKey, TItem>.يبدو أن مباراة أفضل ما تريد القيام به.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top