0

linq ステートメントがあり、ステートメントに一致する行のインデックスを取得できるかどうかを知りたいですか? ここにあります:

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();
4

3 に答える 3

4

要素のインデックスも投影する(または) のオーバーロードをSelect使用できます。Where

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();

補足: 変数名をより意味のあるものに変更することを検討してください。それは読めません。

于 2013-09-04T08:50:38.520 に答える
1

これのことですか?

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 >= czas11 && x.dt <= czas22)
           .Select((x,index) =>new{ x.obj,Index=index}).ToList();
于 2013-09-04T08:51:30.840 に答える