获取符合我的LINQ的线指标 [英] Get index of lines that match my linq

查看:90
本文介绍了获取符合我的LINQ的线指标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个LINQ声明,我想知道是否有可能获得符合我的语句行indicies?在这里,它是:



  VAR的结果= list3.Where(中间= GT; list4.Any(X => X == middle.Middle.category1))选择(OBJ =方式>新{OBJ,DT = DateTime.ParseExact(obj.LeftColumn,日期格式,CultureInfo.InvariantCulture)})
。凡(X => x.dt > = datetimepickerChoice1和放大器;&安培; x.dt< = datetimepickerChoice2)
。选择(X => x.obj).ToList();


解决方案

您可以使用 选择超载 (或其中,),这也突出了元素的索引:

  VAR的结果=项目list3 。选择((中,指数)=>新建{中旬,指数})
。凡(X => list4.Any(XX => XX == x.middle.Middle.category1))
。选择(X =>新建{x.middle,x.index,DT = DateTime.ParseExact(x.middle.LeftColumn,日期格式,CultureInfo.InvariantCulture)})
。凡(X => ; x.dt> = czas11和放大器;&安培; x.dt< = czas22)
。选择(X => x.index)
.ToList();



边注:考虑改变你的变量名称要有意义的多。这是不可读的。


I have a linq statement and I would like to know if it is possible to get indicies of lines that match my statement? Here it is:

var result = list3.Where(middle => list4.Any(x => x == middle.Middle.category1)).Select(obj => new { obj, dt = DateTime.ParseExact(obj.LeftColumn, dateFormat, CultureInfo.InvariantCulture) })
           .Where(x => x.dt >= datetimepickerChoice1 && x.dt <= datetimepickerChoice2)
           .Select(x => x.obj).ToList();

解决方案

You can use the overload of Select (or Where) which projects also the index of the element:

var result = list3.Select((middle, index) => new{ middle, index })
    .Where(x => list4.Any(xx => xx == x.middle.Middle.category1))
    .Select(x => new { x.middle, x.index, dt = DateTime.ParseExact(x.middle.LeftColumn, dateFormat, CultureInfo.InvariantCulture) })
    .Where(x => x.dt >= czas11 && x.dt <= czas22)
    .Select(x => x.index)
    .ToList();

Side-note: consider to change your variable names to be more meaningful. That is unreadable.

这篇关于获取符合我的LINQ的线指标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆