یک برنامهی ساده در C# بنویسید که یک آرایه از جفتهای (sensorId:int, value:double) بگیرد و با استفاده از Dictionary.ContainsKey آخرین مقدار مربوط به هر sensorId را در یک دیکشنری ذخیره و در پایان آن دیکشنری را بازگرداند.
14.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:14 0.0
برای حل مسئله یک Dictionary بسازید، سپس روی آرایه ورودی تکرار کنید و برای هر جفت ابتدا با ContainsKey بررسی کنید آیا کلید وجود دارد یا خیر؛ اگر وجود داشت مقدار مربوطه را با مقدار جدید بروزرسانی کنید و در غیر این صورت با Add آن را اضافه کنید. در عمل میتوانید از انواع داده مثل Tuple یا KeyValuePair برای نمایش جفتها استفاده کنید. برای کاربردهای پردازش دادههای سنسوری در Systems Programming یا تحلیل داده و محاسبات با کارایی بالا (HPC) میتوانید ظرفیت اولیه دیکشنری را مشخص کنید تا بازتخصیص حافظه کمتر شود و در سناریوهای چند-نخی از ConcurrentDictionary استفاده نمایید؛ همچنین به عنوان جایگزین سادهتر میتوان از dict[id] = value برای افزودن یا بروزرسانی بدون بررسی اولیه استفاده کرد، اما در این سؤال تاکید بر استفاده از ContainsKey است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این روش با استفاده از Dictionary.ContainsKey کار میکند و آخرین مقدار هر sensorId را در یک دیکشنری ذخیره میکند. اگر کلید وجود داشته باشد، مقدار را بهروزرسانی میکند و اگر وجود نداشته باشد با Add اضافه میکند. برای بهبود کارایی میتوانید اندازه اولیهٔ دیکشنری را مشخص کنید یا از Dictionary<int, double>(initialCapacity) استفاده کنید تا بازتخصیص حافظه کاهش یابد. اگر سناریوهای چندنخی دارید، بهجای Dictionary از ConcurrentDictionary استفاده کنید یا با قفل منطق بهروزرسانی را ایمن کنید. همچنین میتوانید از Tuple<int, double> یا KeyValuePair<int, double> برای نمایش جفتها استفاده کنید، اما در نهایت اجرای دقیق به الزامات پروژه بستگی دارد.
گزارش