Tôi có một danh sách mà tôi muốn đưa vào một từ điển, để đơn giản các giá trị được chèn vào sẽ giống nhau.C# ToDictionary với ContainsKey kiểm tra
Tôi có thể sử dụng vòng lặp foreach.
List<string> list = new List<string>();
list.Add("Earth");
list.Add("Wind");
list.Add("Fire");
list.Add("Water");
list.Add("Water"); // Will NOT BE INSERTED using the foreach loop
var myDictionary= new Dictionary<string, int>();
foreach (string value in list)
{
if (!myDictionary.ContainsKey(value))
{
myDictionary.Add(value, 1);
}
}
Các công trình trên.
Nhưng tôi muốn sử dụng ToDictionary làm tương tự theo cách sau -
Dictionary<string, int> myDictionary2 = list.ToDictionary(i => i, i => 1);
Tất nhiên điều này không thành công vì tôi thêm "nước" hai lần.
Cách kiểm tra chính xác mục trùng lặp khi sử dụng ToDictionary là gì?
Điều này sẽ hiệu quả, nhưng tôi tự hỏi liệu OP có thực sự muốn một bộ không. – Gabe
@Gabe: Không chắc tôi không hiểu nhận xét của bạn trong bối cảnh câu hỏi - bạn có thể làm rõ không? – BrokenGlass
Một từ điển mà tất cả các giá trị là 1 về cơ bản chỉ là một tập hợp. Nếu người dùng không bao giờ accesse các giá trị, một từ điển thực tế là không cần thiết. – Gabe