كيف يمكنني تحويل القائمة<object> إلى Hashtable في C# ؟
سؤال
لدي قائمة من الأشياء ، كل منها يحتوي على معرف ، رمز الوصف.
أنا في حاجة لتحويل هذه القائمة إلى 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>
.يبدو أن مباراة أفضل ما تريد القيام به.
لا تنتمي إلى StackOverflow