gpt4 book ai didi

c# - 如何填补列表中属性值的空白?

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:52 24 4
gpt4 key购买 nike

我有一个列表:

List<BtnCountViews> btnCountViewsList;

BtnCountViews 类如下所示:

public class BtnCountViews
{
public int DayOfYear { get; set; }
public int BtnCount { get; set; }
public int Views { get; set; }
}

我有一个非常不寻常的要求,我不确定如何开始实现它。

我想做的是用 `BtnCountViews 填充 btnCountViewsList,用于缺少 BtnCount 为 0 和 Views 为 0 的对象的 DayOfYear。

为了让我开始,谁能告诉我如何在 btnCountViewsList 中找到最小和最大 DayOfYear。请注意,我用 LINQ 标记了它,但我不确定这是否是最好的工具。

如果有人可以建议一种方法来填充缺失的对象,我们也会很高兴,但这并不是这个问题的真正重点,因为我认为我需要先找出如何获得最小值和最大值。

最佳答案

您可以在不明确找到 minmax 的情况下添加缺失的天数:

  • DayOfYear 升序排列列表 ( how? )
  • 在列表的末尾开始一个循环索引i,然后向后工作;当 i 达到零时停止
  • 比较 DayOfYear 属性在 ii-1
  • 如果两天相差一天,则向下移动到下一个 i
  • 否则插入一条新记录,DayOfYear 设置为 btnCountViewsList[i] 减一。

在此过程结束时,您的列表将包含 DayOfYear 的每个值的条目。这是一个示例实现:

items.Sort((x, y) => x.DayOfYear.CompareTo(y.DayOfYear));
Console.WriteLine("Before: {0}", string.Join(", ", items.Select(x => x.DayOfYear)));
int i = items.Count-1;
while (i > 0) {
if (items[i].DayOfYear == items[i-1].DayOfYear+1) {
i--;
} else {
items.Insert(i, new BtnCountViews { DayOfYear = items[i].DayOfYear-1 });
}
}

Demo.

关于c# - 如何填补列表中属性值的空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47775298/

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