gpt4 book ai didi

c# - 按具有混合值的两个条件对值进行分组

转载 作者:行者123 更新时间:2023-11-30 16:17:32 26 4
gpt4 key购买 nike

我有一个包含以下值的列表:

  <event>
<value1>2013-05-04 10:00:00.123Z</value1>
<value2>1111</value2>
<value3>303533F1700DEE80001E8482</value3>
<value4>IN</value4>
</event>

<event>
<value1>2013-05-04 10:00:00.123Z</value1>
<value2>1111</value2>
<value3>303533F1700DEE80001E8482</value3>
<value4>OUT</value4>
</event>

我需要对 value3 值进行分组并获取 Distincts value4。

困难在于它可以混合使用 value4,例如:“OUT, OUT, IN, OUT, IN, IN”。

这可以在 Linq 中实现吗?!

到目前为止我得到了这个:

 var s = (from p in trackingList
group p by new {p.value3}
into grp
select new TrackingSteps
{
DateIn = **grp.Key.value1**,
DateOut = 'the **value1** of **value4**'

}).ToList();

最佳答案

我将尝试回答,但您的目的并不完全清楚。如果您尝试获取一组对象并为每个 value3 生成一个对象,其中每个生成的对象都具有属性 DateIn = (MIN value1 where value4 = "IN") 和 DateOut = (MAX value1 where value4 = "OUT "),那么它可能看起来像这样:

from p in trackingList
group p by p.Value3 into g
select new {
Value3 = g.Key,
DateIn = g.Where(o => o.Value4 == "IN")
.Select(o => o.Value1)
.DefaultIfEmpty(DateTime.MinValue)
.Min(),
DateOut = g.Where(o => o.Value4 == "OUT")
.Select(o => o.Value1)
.DefaultIfEmpty(DateTime.MaxValue)
.Max()
}

关于c# - 按具有混合值的两个条件对值进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com