تمام سوالات سوالات بدون پاسخ سوال بپرسید

می خواهم متغیری از نوع ناشناس (anonymous) را به تابعی بفرستم. واقعیت این است که این متغیر حاصل یک پرس و جوی Linq است. اما به روش معمول این کار ممکن نیست:

var result = (from name in PersonsTable
             select new { ColumnName = name.ColumnName });
ProcessTheResult(query)

اما اگر تابع ProcessTheResult به این صورت تعریف شود، این تابع قابل استفاده نخواهد بود.

private void ProcessTheResult(var result)
2 پاسخ

متاسفانه چیزی که شما میخواهید ممکن نیست. مقدار متغیر IEnumerable از یک نوع بی نام است. نام انواع ناشناس در کد کاربر نشان داده نمی شود، از این رو هیچ راهی برای قرار دادن آنها به عنوان ورودی تابع وجود ندارد. بهترین روش این است که یک تایپ ایجاد کنید و خروجی آن را به تابع منتقل کنید. به عنوان مثال:

struct Data {
  public string ColumnName; 
}

var query = (from name in some.Table
            select new Data { ColumnName = name });
MethodOp(query);
...
MethodOp(IEnumerable<Data> enumerable);

هرچند که در این مورد، میتوانید تنها یک فیلد را انتخاب کنید، پس از آن ممکن است که بتوانید فیلدها را آسان تر به طور مستقیم انتخاب کنید. این موجب خواهد شد که پرس و جو به عنوان یک نوع از IEnumerable زمینه اجرا شوند. در این مورد ، نام ستون.

var query = (from name in some.Table select name);  // IEnumerable<string>

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×209
  • ×61
  • ×40
  • ×32
  • پرسیده شده: 13 سپتامبر '11, 09:15
  • بازدید: 2,073 بار
  • آخرین بروزرسانی: 30 نوامبر '14, 13:14

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها