2011-11-23 65 views
2

这是我的代码的伟大工程:语法LINQ的IEnumerable <string>

IPRepository rep = new IPRepository(); 
    var Q = rep.GetIp() 
     .Where(x => x.CITY == CITY) 
     .GroupBy(y => o.Fam) 
     .Select(z => new IpDTO 
     { 
      IId = z.Key.Id, 
      IP = z.Select(x => x.IP).Distinct() 
     }); 

IP是IEnumerable<string>

  1. 我要加入到呼叫上面这段代码的功能PAINTIP(ip)
  2. 我需要将IP中的每个元素都发送到函数PAINTIP(ip)。 因此我需要使用某种foreach函数,但我无法弄清楚如何。
+1

你错过了=你在哪里() –

+0

Ssorry我现在已经改变了它 – Tania1990

回答

2
rep.GetIp() 
    .Where(x => x.CITY == CITY) 
    .GroupBy(y => o.Fam) 
    .Select(z => new IpDTO 
        { 
         IId = z.Key.Id, 
         IP = z.Select(x => x.IP).Distinct() 
        }) 
    .SelectMany(item => item.IP) 
    .ToList() 
    .ForEach(PAINTIP) 
+0

我需要调用PAINTIP函数只与IP我有IP内选择:IP = z.Select(x => x.IP).Distinct() – Tania1990

+0

IP可能会丢失ip号码,功能PAINTIP只接收一个ip并绘制其历史记录。因此我需要采取IP将收到的每个IP号码,并调用功能PAINTIP与每个IP号码 – Tania1990

+0

我更新了代码。 –

0

非常相似,这个问题 LINQ equivalent of foreach for IEnumerable<T>

的答案没有对每个为一个IEnumerable但对于名单

items.ToList().ForEach(i => i.DoStuff()); 

编辑

我不确定你是否可以按照你想要的方式去做o除此之外:

ep.GetIp() 
    .Where(x => x.CITY == CITY) 
    .GroupBy(y => o.Fam) 
    .Select(z => new IpDTO 
       { 
        IId = z.Key.Id, 
        IP = z.Select(x => x.IP).Distinct() 
       }) 
    .ToList().ForEach(IpObj => IpObj.IP.ToList().ForEach(ip => PAINTIP(ip)); 

这样,您可以首先获得IpDTO对象列表。然后枚举每个IpDTO对象的IP IEnumerable。我还没有看到一种方法可以在您创建IpDTO对象的过程中进行枚举。如果有人有一个如何做的例子,我希望看到自己学习。

+0

得到什么,我昨天看到了这个问题,但是我在我的代码里面做同样的事情,所以我决定问这个问题,我不知道该把这个列表放到我的代码的哪里,以及如何使用{} IP.ToList()。ForEach(i => i.PAINTIP(x)); }); – Tania1990

+0

你想要枚举哪部分代码? (I => i.PAINTIP(i)); Q.ToList().If(i => i.PAINTIP(i)); 会对结果进行初步检查。那不是你所追求的? – Chris

+0

我只需要使用IP调用PAINTIP函数,我在select中选择IP:IP = z.Select(x => x.IP)。不同的() – Tania1990

0

你可以做这样的事情:

var result = from item in collection 
      .Where(i => i.condition == value) 
      .Select(i => new{ Name = i.name, Description = i.Description }) 
      .ToList().ForEach(i => Function(i)); 

希望这有助于!

+0

我想我明白,但从内部选择我只需要IP我不需要所有其他对象,如IID。我怎么能ForEach只有IP? – Tania1990

相关问题