এটি একটি পুরানো প্রশ্ন, তবে আমি ভেবেছিলাম আমার সি # 6 উত্তরটি রেখে দেব। আমাকে প্রায়শই টেপ ডেটা সেটআপ করতে হয় যা টিপলসের তালিকা হিসাবে সহজেই কোড-এ প্রবেশ করা হয়। বেশ কয়েকটি এক্সটেনশন ফাংশন সহ প্রতিটি এন্ট্রিতে নামগুলি পুনরাবৃত্তি না করে এই সুন্দর, কমপ্যাক্ট ফর্ম্যাটটি পাওয়া সম্ভব।
var people= new List<Tuple<int, int, string>>() {
{1, 11, "Adam"},
{2, 22, "Bill"},
{3, 33, "Carol"}
}.Select(t => new { Id = t.Item1, Age = t.Item2, Name = t.Item3 });
এটি একটি মূলনাম দেয় - আপনি যদি এমন একটি তালিকা চান যা আপনি যোগ করতে পারেন তবে কেবলমাত্র টোলিস্ট () যুক্ত করুন।
যাদুটি কাস্টম এক্সটেনশান থেকে আসে টিউপলগুলির জন্য পদ্ধতিগুলি জুড়ুন, https://stackoverflow.com/a/27455822/4536527 এ বর্ণিত ।
public static class TupleListExtensions {
public static void Add<T1, T2>(this IList<Tuple<T1, T2>> list,
T1 item1, T2 item2) {
list.Add(Tuple.Create(item1, item2));
}
public static void Add<T1, T2, T3>(this IList<Tuple<T1, T2, T3>> list,
T1 item1, T2 item2, T3 item3) {
list.Add(Tuple.Create(item1, item2, item3));
}
// and so on...
}
কেবলমাত্র আমি পছন্দ করি না তা হল নামগুলি থেকে প্রকারগুলি পৃথক করা হয়, তবে আপনি যদি সত্যিই কোনও নতুন শ্রেণি তৈরি করতে না চান তবে এই পদ্ধতির ফলে আপনি পঠনযোগ্য ডেটা রাখতে পারবেন।
new[] { new{ Id = (int?)null, Name = "Foo" }, new { Id = (int?)1, Name = "Foo" }}