একক তালিকার তালিকাগুলির তালিকা


201

মনে হচ্ছে এটি এমন এক ধরণের জিনিস যা ইতিমধ্যে উত্তর দেওয়া হত তবে আমি এটি খুঁজে পাই না।

আমার প্রশ্নটি বেশ সহজ, আমি কীভাবে একটি বিবৃতিতে এটি করতে পারি যাতে খালি তালিকাটি নতুন করে রাখার পরিবর্তে পরবর্তী লাইনে একত্রিত করা যায়, যাতে আমার একক লিনাক স্টেটমেন্ট থাকতে পারে যা আমার চূড়ান্ত তালিকার বাইরে চলে যায়। বিশদটি হ'ল আইটেমগুলির একটি তালিকা যা প্রতিটি আবাসের একটি তালিকা রয়েছে, আমি কেবল ফ্ল্যাট তালিকার সমস্ত আবাস চাই।

var residences = new List<DAL.AppForm_Residences>();
details.Select(d => d.AppForm_Residences).ToList().ForEach(d => residences.AddRange(d));

উত্তর:


316

আপনি SelectManyএক্সটেনশন পদ্ধতিটি ব্যবহার করতে চান ।

var residences = details.SelectMany(d => d.AppForm_Residences).ToList();

3
ধন্যবাদ। @ জারেডপারে ভুল উপাদান থেকে নির্বাচন রয়েছে, তবে আপনার গাইডেন্সের জন্য উভয়কে ধন্যবাদ thank
জ্যারেট উইডম্যান

51

সিলেক্টম্যানি ব্যবহার করুন

var all = residences.SelectMany(x => x.AppForm_Residences);

35

আপনার জন্য একটি নমুনা কোড এখানে:

List<int> listA = new List<int> { 1, 2, 3, 4, 5, 6 };

List<int> listB = new List<int> { 11, 12, 13, 14, 15, 16 };

List<List<int>> listOfLists = new List<List<int>> { listA, listB };

List<int> flattenedList = listOfLists.SelectMany(d => d).ToList();

foreach (int item in flattenedList)
{
    Console.WriteLine(item);
}

এবং আউটপুট হবে:

1
2
3
4
5
6
11
12
13
14
15
16
Press any key to continue . . .

29

এবং যারা ক্যোয়ারী এক্সপ্রেশন সিনট্যাক্স চান তাদের জন্য: আপনি বিবৃতি থেকে দুটি ব্যবহার করুন

var residences = (from d in details from a in d.AppForm_Residences select a).ToList();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.