0

我进行分组并获取子列表...在查询期间我创建了一个新的obj

var result3 = from tick in listTicks
              group tick by bla bla into g
              select new 
              { 
                  Count = g.Count(), 
                  Key = g.Key, 
                  Items = g,
                  Timestamp = g.First().timestamp,
                  LastTimestamp = g[-1].First().timestamp result3 isn't still declared???
              };

我想在运行时访问最后创建的 obj 的新值,可能会检查最后一个 first.Timestamp 是否具有特定值

在创建 select new {} 期间是否可以访问最后一个 g 我想检查最后一个 g 中的一个实际值

我想像 result3[result.count - 1].timestamp 之类的东西???在选择新部分...

4

1 回答 1

1

我不应该正确理解,但这就是你想要的吗?

result3.Last().Timestamp;

评论后:我想我现在明白了。您需要创建一个临时变量来存储最后一组的时间戳并将其值设置为更复杂的委托:

int lastTimestamp = 0; // Put the correct type and default value

var result3 = (from tick in listTicks
              group tick by bla bla into g
              select g)
              .Select
              (g => 
              {
                  // Create your object with the last timestamp
                  var result = new
                  { 
                      Count = g.Count(), 
                      Key = g.Key, 
                      Items = g,
                      Timestamp = g.First().timestamp,
                      LastTimestamp = lastTimestamp
                  };
                  // Set last timestamp for next iteration
                  lastTimestamp = result.Timestamp;
                  // Return your object
                  return result;
              });

不知道确切的上下文,但您可能想要添加“ToList()”来覆盖延迟获取。

于 2009-03-06T12:09:12.857 回答