2014-03-05 19 views
0

dynamicList<XElement>我想獲取包含特定attValue的所有值。
要做到這一點我使用這個:如何使用linq檢查列表是否包含動態列表中的項目

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"

我需要得到所有具有txt類型的mediaTypevidproperties

注:我可以得到像這樣的mediaType:

dynObject[0].property.mediaType.Value; 
+0

你能證明你的attValues列表的一些示例內容和創作嗎? – BenM

+0

@Rondles我編輯了這個問題 – IBRA

回答

1

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

假設attValues是值的列表來搜索

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