chúng tôi có thiết lập sau: Chúng tôi có một mảng đối tượng có chuỗi trong đó (xml-ish nhưng không được chuẩn hóa) và chúng tôi có danh sách/mảng chuỗi có id .C# LINQ, Tìm kiếm các mục giống nhau trong hai danh sách
Chúng tôi cần tìm hiểu xem một chuỗi từ danh sách đó có id cũng là nhấn vào một trong các đối tượng hay không.
Ở đây chúng ta có một thiết lập mà chúng tôi đã cố gắng:
public class Wrapper
{
public string MyProperty { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<Wrapper> wrappers = new List<Wrapper>()
{
new Wrapper{ MyProperty = "<flkds,dlsklkdlsqkdkqslkdlqk><id>3</id><sqjldkjlfdskjlkfjsdklfj>"},
new Wrapper{ MyProperty = "<flkds,dlsklkdlsqkdkqslkdlqk><id>2</id><sqjldkjlfdskjlkfjsdklfj>"}
};
string[] ids = { "<id>0</id>", "<id>1</id>", "<id>2</id>" };
var props = wrappers.Select(w => w.MyProperty);
var intersect = props.Intersect(ids, new MyEquilityTester());
Debugger.Break();
}
}
class MyEquilityTester: IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
return x.Contains(y);
}
public int GetHashCode(string obj)
{
return obj.GetHashCode();
}
}
Edit:
gì chúng tôi mong đợi là khi chúng ta làm một .Any()
trên intersect
đó là nói true
vì giấy gói có một đối tượng với một prop có chứa <id>2</id>
, intersect
là null
.
Nếu chúng tôi sử dụng sai phương pháp, vui lòng nói. Nó sẽ hoạt động nhanh như posible. Một đơn giản true
khi tìm thấy sẽ làm!
Câu hỏi của bạn là gì? –
@DanielHilgarth tôi đã cập nhật bài viết – Frederiek
Điều tốt nhất để làm ở đây là phân tích cú pháp văn bản trong 'MyProperty' thành cấu trúc dễ đọc/thân thiện/dễ bảo trì hơn. – devundef