簡體   English   中英

如何使用linq檢查列表是否包含動態列表中的項目

[英]How to check if a list contains item in dynamic list using linq

dynamic List<XElement>我想獲取包含特定attValue所有值。
為此,我正在使用:

return new DynamicXml(from item in _elements
                     where item.Attribute("attName").Value.Contains("attValue")
                     select item);

為了獲得具有多個屬性值的屬性,我可以使用以下方法:

return new DynamicXml(from item in _elements
                     where item.Attribute("attName").Value.Contains("attValue") ||
                           item.Attribute("attName").Value.Contains("attValue2")
                     select item);

前面的所有代碼都能正常工作,現在我試圖在第二個代碼塊中做確切的事情,但是除了添加靜態條件外,我還需要傳遞一個包含屬性值的列表,以獲取這些值,但它會返回錯誤的數據。 我試圖這樣做:

  1. 無論其屬性值是什么,這都會返回所有值。

     return new DynamicXml(from item in _elements where attValues.Any(v => v.Contains(item.Value)) select item); 
  2. 這不會返回任何內容:

     return new DynamicXml(from item in _elements where attValues.Contains(item.Value) select item); 

注意: attValues是列表

編輯:

_ elements包含如下屬性:

<property name="id" xpath="//Atom:entry/Atom:id"  disAtt="" mediaType="txt,pix"  isSingleSelection="true" />

attValues包含mediaTypes"txt""vid"

我需要獲取具有txtvid類型的mediaType的所有properties

注意:我可以這樣獲得mediaType:

dynObject[0].property.mediaType.Value;

向后看,在第一個示例中,您想要一個特定屬性,其中值的值包含一個列表,在第二個示例中,您顯示代碼,以獲取其值包含在列表中的任何屬性。

假設attValues是要搜索的值的列表

return new DynamicXml(from item in _elements
                 where attValues.Any(v => item.Attribute("attName").Value.Contains(v))
                 select item);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM