Sử dụng một HashSet<string>
thay vì một List<string>
. Nó được chuẩn bị để thực hiện một hiệu suất tốt hơn bởi vì bạn không cần phải cung cấp séc cho bất kỳ mục nào. Bộ sưu tập sẽ quản lý nó cho bạn. Đó là sự khác biệt giữa số list
và số set
. Đối với mẫu:
HashSet<string> set = new HashSet<string>();
set.Add("a");
set.Add("a");
set.Add("b");
set.Add("c");
set.Add("b");
set.Add("c");
set.Add("a");
set.Add("d");
set.Add("e");
set.Add("e");
var total = set.Count;
Tổng số là 5
và các giá trị là a
, b
, c
, d
, e
.
Việc triển khai List<T>
không cung cấp cho bạn nativelly. Bạn có thể làm điều đó, nhưng bạn phải cung cấp điều khiển này. Đối với mẫu, điều này extension method
:
public static class CollectionExtensions
{
public static void AddItem<T>(this List<T> list, T item)
{
if (!list.Contains(item))
{
list.Add(item);
}
}
}
và sử dụng nó:
var list = new List<string>();
list.AddItem(1);
list.AddItem(2);
list.AddItem(3);
list.AddItem(2);
list.AddItem(4);
list.AddItem(5);
Nguồn
2016-01-22 20:12:08
lines2 là danh sách các chuỗi xin lỗi đã làm một lỗi nhỏ trong khi sao chép và dán mã – vini
có thể có một khoảng trống giữa hai chuỗi như = SBC bgp – vini
có bạn xem là sử dụng một HashSet thay vì Danh sách cho trường hợp này, nó sẽ hoạt động tốt hơn nhiều. –
bashmohandes