簡體   English   中英

Linq DataTable重用串聯變量

[英]Linq DataTable reuse concatenated variable

這是我在數據表上的LINQ中所做的事情。

var result = resTable.Rows.Where(r => Map.ContainsKey(string.Concat(r[HeaderCol].ToString().Trim(),dot,r[FooterCol].ToString().Trim(),dot,r[TypeCol].ToString().Trim())))
                                              .GroupBy(r => string.Concat(r[HeaderCol].ToString().Trim(), dot, r[FooterCol].ToString().Trim(), dot, r[TypeCol].ToString().Trim()))
                                              .ToDictionary(g => g.Key,
                                                            g => g.GroupBy(r => DateTime.FromOADate((double)r[DateCol]))
                                                                  .ToDictionary(c => c.Key,
                                                                                c => c.Select(r => new ResultObj(DateTime.FromOADate((double)r[ResultDateCol]), new Decimal((double)r[PriceCol])))
                                                                                      .ToList()));

我正在根據列值創建鍵,並且也需要在分組依據中使用它。

string.Concat(r[HeaderCol].ToString().Trim(), dot, r[FooterCol].ToString().Trim(), dot, r[TypeCol].ToString().Trim())

以任何方式我只能做一次字符串concat並在LINQ中使用它兩次?

我不知道為什么需要這樣做,但是您要在這里。

var result = resTable.Rows.Select(r => new {r, res = string.Concat(r[HeaderCol].ToString().Trim(),dot,r[FooterCol].ToString().Trim(),dot,r[TypeCol].ToString().Trim())})
     .Where(r => Map.ContainsKey(r.res))
     .GroupBy(r => r.res)
          .ToDictionary(g => g.Key,
              g => g.GroupBy(r => DateTime.FromOADate((double)r.r[DateCol]))
                    .ToDictionary(c => c.Key,
                            c => c.Select(r => new ResultObj(DateTime.FromOADate((double)r.r[ResultDateCol]), new Decimal((double)r.r[PriceCol])))
                                .ToList()));

暫無
暫無

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

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