یک برنامهٔ C# بنویسید که یک لیست از خوانشهای حسگر (هر خوانش شامل شناسهٔ رشتهای و یک مقدار عددی) را پردازش کند و با استفاده از Dictionary.ContainsKey مجموع و تعداد مقادیر هر شناسه را محاسبه و نتیجه را چاپ کند.
10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:15 0.0
برای حل، میتوانید یک Dictionary یا دو دیکشنری مجزا برای شمارش و مجموع بسازید؛ سپس روی هر خوانش حلقه بزنید، مقدار را پارس کنید و با Dictionary.ContainsKey بررسی کنید آیا کلید وجود دارد یا خیر: اگر هست مقدار و شمارش را بهروزرسانی کنید و در غیر این صورت یک ورودی جدید اضافه کنید. نکتهها: از TryGetValue بهعنوان جایگزین کمهزینه استفاده کنید، هنگام پردازش دادههای بزرگ توجه به پیچیدگی O(1) عملیات دیکشنری مفید است (مناسب برای کاربردهای دادهکاوی، پردازش لاگ در سیستمها یا محاسبات با کارایی بالا).
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای کارایی، بهجای استفاده از ContainsKey و سپس دسترسی به مقدار، میتوانید از TryGetValue استفاده کنید تا مقدار و وجود کلید را یکبار بخوانید. همچنین میتوانید یک دیکشنری از یک ساختار ساده (مثلاً تاپل یا کلاس/ساختار) با دو فیلد sum و count داشته باشید تا همزمان هم مقدار و هم شمارش برای هر شناسه نگهداری شوند. از نظر اندازه مقادیر، اگر خوانشها بزرگ یا نامشخص هستند، استفاده از long برای مجموع و int برای شمارش پیشنهاد میشود تا از احتمال overflow جلوگیری شود. اگر دادهها بهطور موازی پردازش میشوند، به فکر استفاده از ConcurrentDictionary یا قفلگذاری مناسب بیافتید تا از شرایط مسابقه جلوگیری کنید.
گزارش