2010-11-15 32 views
5

Tôi đang lập trình bằng C# và đang làm việc với XDocument. Bạn muốn thêm phần tử vào cây nếu và chỉ khi không có phần tử nào khác có giá trị thuộc tính phù hợp.Làm thế nào để sử dụng LINQ để xác định nếu giá trị thuộc tính cụ thể tồn tại?

Ví dụ: có biểu thức LINQ mà tôi có thể sử dụng để xem phần tử bên dưới và xem liệu có tồn tại phần tử foo có cùng tên trước khi tôi thêm nó không?

<people> 
    <foo Name="Bob"> </foo> 
    <foo Name="Larry"></foo> 
    <foo Name="Tom"></foo> 
</people> 

tôi muốn làm một cái gì đó như thế này ...

while(myXDocument.Element("people").Elements("foo").Attribute("Name").Contains(myName)) 
{ 
    // modify myName and then try again... 
} 

Trả lời

8

này nên làm việc:

XElement.Any(element => element.Attribute("Name").Value == myName) 

Nó sẽ trở thành sự thật nếu có một thuộc tính Name rằng bằng myName

+0

Hi, cảm ơn bạn đã trả lời của bạn, nó rất hữu ích! Nhưng, bạn đã viết "=" thay vì "==", phải không? –

+1

Thật vậy, tôi đã làm, như một anh chàng VB đôi khi rất khó để chuyển sang C# – wagi

4

Bạn có thể muốn nhìn vào IEnumerable.Any trên XDocument.Elements. Điều này xác định liệu bất kỳ phần tử nào của chuỗi có thỏa mãn điều kiện hay không.

Các vấn đề liên quan