将对象转换为字符串数组?

时间:2013-04-17 14:18:09

标签: c# linq casting

我有这段代码:

Strutture = from Ricettivito s in Strutture
            where s.ServiziAttivi.Cast<string>().Intersect(IDSServizi).Count() == IDSServizi.Count()
            select s;

我需要:

  1. 将ServiziAttivi(MyService列表)转换为字符串列表(必须包含MyService.UniqueID)
  2. 然后,检查此列表是否包含IDSServizi的每个元素(这是一个字符串列表)。
  3. 但似乎我无法进行转换?

2 个答案:

答案 0 :(得分:4)

首先转换为.Cast<Ricettivita.MyService>(),然后选择一个字符串属性。

    where s.ServiziAttivi
             .Cast<Ricettivita.MyService>()
             .Select(x=>x.UniqueID).Intersect(IDSServizi).Count()

答案 1 :(得分:1)

我认为您应该使用Select代替Cast

Strutture = from Ricettivito s in Strutture
            where s.ServiziAttivi.Select(x => (string)x.UniqueID).Intersect(IDSServizi).Count() == IDSServizi.Count()
            select s;