Cách tốt nhất để tìm một thứ gì đó trong danh sách là gì? Tôi biết LINQ có một số thủ thuật tốt đẹp, nhưng chúng ta hãy cũng nhận được gợi ý cho C# 2.0. Cho phép có được cấu trúc lại tốt nhất cho mẫu mã phổ biến này.Cách sạch nhất để tìm một trận đấu trong danh sách
Hiện nay tôi sử dụng mã như thế này:
// mObjList is a List<MyObject>
MyObject match = null;
foreach (MyObject mo in mObjList)
{
if (Criteria(mo))
{
match = mo;
break;
}
}
hoặc
// mObjList is a List<MyObject>
bool foundIt = false;
foreach (MyObject mo in mObjList)
{
if (Criteria(mo))
{
foundIt = true;
break;
}
}
Không, hiệu suất đạt được ở đây không sử dụng đại biểu. Thuật toán của bạn hoạt động cơ bản khác nhau, phương thức đầu tiên có thời gian chạy tiệm cận O (n^2) trong khi phương thức thứ hai có thời gian chạy O (n). Điều này không liên quan gì đến các đại biểu mà là sử dụng chức năng 'Find' trong ngữ cảnh này. –