لماذا مجموعة من مفتاح للكائنات مجهولة لا تتصرف بالطريقة المتوقعة؟

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

سؤال

ولدي ملف CSV هذا formart

 A,B,value
 a1,b1,10
 a2,b1,12
 a2,b1,15
 a2,b2,14
 a1,b1,12

والتي أنا تحويل كما DataTable وفي طلبي.

 Dim enumerable = _dt.AsEnumerable

 Dim groupedResults = enumerable.GroupBy( _
                                   Function(x) _
                                        New With { _
                                                  .A = x.Item("A").ToString, _
                                                  .B = x.Item("B").ToString _
                                                 } _
                                        )

وتوقعت groupedResults العد إلى 4 بدلا من 5 والذي يظهر.
في الأساس لم يكن مجموعة من 1 والصف ال 5 في مجموعة واحدة.

وتوقعت الكائن بنفس القيمة سوف تنتج نفس المفتاح.

وماذا يمكن أن يكون السبب وراء ذلك؟

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

المحلول

تأكد خصائص نوع مجهول غير قابل للتغيير - هذه هي الطريقة للحصول على المساواة وتجزئة للعمل. (في C # جميع أنواع مجهولة المصدر وغير قابل للتغيير افتراضيا).

وهذه محاولة

 Dim enumerable = _dt.AsEnumerable

 Dim groupedResults = enumerable.GroupBy( _
               Function(x) _
                    New With { _
                              Key .A = x.Item("A").ToString, _
                              Key .B = x.Item("B").ToString _
                             } _
                    )

وتحرير: الجزء Key يعني أن الخاصية هي المفتاح لنوع مجهول. انظر VB أنواع مجهولة MSDN الصفحة للحصول على مزيد من التفاصيل.

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