در C# برنامهای بنویسید که یک List از شناسههای مجاز و یک List از دادهها بگیرد و تنها رکوردهایی را که Id آنها در لیست شناسههای مجاز وجود دارد با استفاده از List.Contains فیلتر و نمایش دهد.
9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:49 0.0
برای حل این مسئله میتوانید با یک حلقه یا با LINQ از متد Contains روی لیست شناسههای مجاز استفاده کنید، مثلاً dataList.Where(d => allowedIds.Contains(d.Id)). برای کار با C# و .NET از System.Linq استفاده کنید. نکته عملکردی: List.Contains برای هر جستجو O(n) است، بنابراین اگر لیست شناسهها بزرگ است بهتر است آن را به یک HashSet تبدیل کنید تا جستجوها O(1) شوند؛ همچنین برای مقایسه رشتهای بدون حساسیت به حروف از StringComparer.OrdinalIgnoreCase یا ساختن HashSet با همین مقایسهگر استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
// برای کارایی بهتر، به جای استفاده مکرر از List.Contains، شناسههای مجاز را در یک HashSet ذخیره کنید تا جستوجوها O(1) شوند. اگر Idها رشتهای هستند از StringComparer.OrdinalIgnoreCase استفاده کنید یا HashSet را با این مقایسه بسازید تا مقایسهها بدون حساسیت به حروف انجام شوند. مثلاً: var allowedSet = new HashSet<string>(allowedIds, StringComparer.OrdinalIgnoreCase); var result = dataList.Where(d => allowedSet.Contains(d.Id)); این رویکرد در دادههای بزرگ کارایی بهبود معنیداری ایجاد میکند.
گزارش