باستخدام LINQ ، كيفية فصل قائمة في الكائنات المجمعة بالاسم؟
-
23-09-2019 - |
سؤال
لدي طاولة حيث يبدو السجل هكذا
varchar(255) Name
varchar(255) Text
varchar(255) Value
الاسم هو اسم DDL ، والنص هو ما يتم عرضه ، ويتم إرجاع القيمة عند التحديد. هناك بين واحد وعشرين خيار لكل اسم. دون التكرار على الرغم من كل خيار مثل المؤشر ، هل هناك أي طريقة لسحب قائمة الكائنات ، واحدة لكل اسم DDL فريد ، باستخدام LINQ و C#؟
عينة من البيانات:
Beds '4 (10)' 4
Beds '5 (1)' 5
Beds '7 (1)' 7
Baths 'NA (13)' NULL
Baths '0 (1)' 0
Baths '1 (13)' 1
كنت أفكر في القيام باختيار خارجي للحصول على الأسماء الفريدة ، ثم تحديد داخلي للحصول على قائمة الخيارات الخاصة به ، ثم أعد المجموعة كقائمة بمجموعة من القوائم.
المحلول
بالتأكيد ، استخدم فقط group ... by
var query = from item in context.TableName
group item by item.Name;
بدلاً من ذلك بدون تعبير عن الاستعلام:
var query = context.TableName.GroupBy(item => item.Name);
ستكون النتيجة IQueryable<IGrouping<string, ItemType>>
. كل عنصر في النتيجة سيكون أ التجميع: مفتاح وتسلسل العناصر مع هذا المفتاح.
لا تنتمي إلى StackOverflow