یک برنامهٔ کنسول در C# بنویسید که یک List از داده‌های سنسور (مقادیر اولیه) داشته باشد و یک لیست دیگر از مقادیر پردازش‌شده (مثلاً ضرب هر مقدار در یک ضریب یا میانگین‌گیری ساده) تولید کند، سپس با استفاده از List.InsertRange مقادیر پردازش‌شده را در یک ایندکس مشخص در لیست اولیه وارد کرده و در نهایت لیست نهایی را چاپ کند.

10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:50

0.0

برای حل این مسئله لیستی از داده‌ها را مقداردهی کنید، لیست پردازش‌شده را با یک عملیات ساده (مثلاً LINQ Select برای ضرب در ضریب یا محاسبه میانگین پنجره‌ای و سپس ToList) بسازید و بعد از بررسی معتبر بودن موقعیت (index باید بین 0 و list.Count باشد) از متد InsertRange(index, processedList) برای وارد کردن دسته‌ای استفاده کنید. نکات مفید: InsertRange عناصر بعدی را جابه‌جا می‌کند (پیچیدگی زمانی O(n+m))، برای افزودن در انتها از AddRange استفاده کنید و در کاربردهای سیستمی یا تحلیل داده از تولید دسته‌ای داده‌ها قبل از واردسازی برای بهبود کارایی استفاده نمایید.

توسط پژوهشگر در 201 روز قبل ساعت 03:50
دسته بندی ها: C# C# for beginner
nima در 201 روز قبل ساعت 05:00

InsertRange عناصر بعدی را جابه‌جا می‌کند و پیچیدگی زمانی آن O(n+m) است، پس برای لیست‌های بزرگ روی کارایی فکر کنید و ظرفیت اولیه را از همان ابتدا تنظیم کنید. قبل از استفاده از InsertRange حتماً اعتبار ایندکس را چک کنید: 0 <= index <= list.Count. برای ایجاد لیست پردازش‌شده می‌توانید از LINQ مانند Select استفاده کنید و نتیجه را با ToList تبدیل کنید تا لیست جدیدی ایجاد شود. اگر می‌خواهید داده‌ها را در انتهای لیست اضافه کنید، از AddRange استفاده کنید یا قبل از واردسازی دسته‌ای را تولید کنید تا بازتخصیص حافظه به حداقل برسد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری