Du får dela upp strängen först, och sen kolla på varje enskild symbol. Typ:
where Array.IndexOf(((string)tr.Attribute("categoryids")).Split(','), categoryid) >= 0
Hej,
hämtar produkter utifrån kategori ur en xml-fil med linq.
public IOrderedEnumerable<XElement> GetProducts(string categoryid)
{
XElement tree = Load();
var products = from tr in tree.Elements("products").Elements()
where ((string)tr.Attribute("categoryids")).Contains(categoryid)
orderby (string)tr.Attribute("name")
select tr;
return products;
}
Xmlfil:
<?xml version="1.0" encoding="utf-8" ?>
<products>
<product categoryids="boende,hus" name="Prod 1" />
<product categoryids="mat,fika" name="Prod 2" />
<product categoryids="husvagn" name="Prod 3" />
</products>
Går det att bygga om Contains så att det blir som en IN istället (om man översätter det i sql)?
Problemet nu är att om jag skickar in kategori "hus" så ska Prod 1 hämtas men nu hämtas även Prod 3 för att hus finns i husvagn!
