Tôi có một danh sách các thông số như thế này:Kiểm tra xem danh sách <t> chứa bất kỳ một danh sách khác
public class parameter
{
public string name {get; set;}
public string paramtype {get; set;}
public string source {get; set;}
}
IEnumerable<Parameter> parameters;
Và một mảng các chuỗi tôi muốn kiểm tra xem nó chống lại.
string[] myStrings = new string[] { "one", "two"};
Tôi muốn lặp qua danh sách tham số và kiểm tra xem thuộc tính nguồn có bằng bất kỳ mảng myStrings nào không. Tôi có thể làm điều này với foreach lồng nhau nhưng tôi muốn tìm hiểu làm thế nào để làm điều đó một cách đẹp hơn như tôi đã được chơi xung quanh với LINQ và giống như các phương pháp mở rộng trên enumerable như nơi vv nên foresteds lồng nhau chỉ cảm thấy sai. Có một linq/lambda/delegete thích hợp hơn cách để làm điều này.
Cảm ơn
cảm ơn dường như là những gì tôi đang tìm kiếm, tôi sẽ dùng thử. Cần phải chơi xung quanh với mặt chức năng của nhiều thứ hơn một chút. liên quan đến cách viết hoa lớp và tài sản, tôi làm tôi chỉ quên khi viết ví dụ trên. – gdp
Tại sao O (n^2)? Nó không phải là O (n * m) khi chúng ta đang nói về hai biến chứ không phải một biến? Vì m (các tham số) là một hằng số, nó giống như O (n). Tôi không thấy giao lộ nên nhanh hơn nhiều ở đây như thế nào? Nhưng đồng ý, Intersect có tiềm năng để được nhanh hơn, nhưng không được bảo đảm. – Squazz
Bạn đúng rằng nó phải là O (n * m) - m không phải là một hằng số mặc dù - nó là kích thước của một trong các danh sách, mặc dù trong ví dụ cụ thể cho nó có thể là "2". Mặc dù tất cả các danh sách đều có chiều dài ngắn, nhưng nó không quan trọng bằng cách này hay cách khác (trong trường hợp đó có lẽ không phải là mối quan tâm của bạn) anyway) – BrokenGlass