باستخدام LINQ ، كيفية فصل قائمة في الكائنات المجمعة بالاسم؟

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

  •  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>>. كل عنصر في النتيجة سيكون أ التجميع: مفتاح وتسلسل العناصر مع هذا المفتاح.

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