मैं आमतौर पर संग्रह के लिए List<T>
का उपयोग करता हूं। लेकिन अगर मुझे संग्रह पर तेज़ लुकअप की ज़रूरत है, तो उदा। निम्न उदाहरण में मैं एक शब्दकोश का प्रयोग करेंगे तो मैं इसे जल्दी से id
से दे सकता है:शब्दकोश है <TKey, TValue> LINQ से एक सूची <T> पर तेजी से?
Dictionary<int, Customer>
लेकिन चूंकि मैं वैसे भी नीचे के रूप में List<T>
क्वेरी करने के लिए, LINQ उपयोग कर सकते हैं, वहाँ के माध्यम से जाने के लिए किसी भी कारण नहीं है एक सूची के बजाय एक शब्दकोश का उपयोग करने में परेशानी? शब्दकोश तेज है या LINQ दृश्यों के पीछे कुछ कर रहा है जो इसे तेज़ी से बनाता है?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<Customer> customers = new List<Customer>()
{
new Customer { Id = 234, FirstName = "Jim", LastName = "Smith" },
new Customer { Id = 345, FirstName = "John", LastName = "Thomas" },
new Customer { Id = 654, FirstName = "Rick", LastName = "Ashton" },
new Customer { Id = 948, FirstName = "Rod", LastName = "Anders" }
};
var customer = (from c in customers
where c.Id == 654 select c).SingleOrDefault();
Console.WriteLine(customer.Display());
Console.ReadLine();
}
}
public class Customer
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
internal string Display()
{
return String.Format("{0}, {1} ({2})", LastName, FirstName, Id);
}
}
}
मुझे यह दिलचस्प पाया गया: http://www.dotnetperls.com/hybriddictionary (यह ध्यान रखना दिलचस्प है कि हाइब्रिड डिक्शनरी केवल बहुत कम * ~ 5 आइटमों के लिए तेज़ है - बेशक, उस विशेष सेटअप का उपयोग करके) –