c# - 循环遍历列表并将前一行与当前行进行比较。我有一个大部分重复的帐号列表
问题描述
我的结果二是我通过使用 LINQ 排序从另一个列表中添加的帐号和日期列表。结果二的列表包含许多重复的帐号,但我想过滤列表以删除重复项,而不仅仅是选择第一个实例。
我正在寻找具有最早日期的帐号。我从流阅读器中得到了一些输出,但它的行为不像预期的那样。我仍然收到每一行,没有删除。
我正在尝试比较帐号是否与上一行中的帐号匹配并且当前日期较旧,以删除具有较新日期的帐号实例。
有任何想法吗?
foreach (var valueTwo in resultTwo)
{
var valueString = valueTwo.Name.ToString();
var currentAccount = valueString.Substring(0, valueString.IndexOf('\t'));
var currentDateTwo = (valueString.Substring((valueString.IndexOf('\t') + 1), 10).Replace("/", ""));
int currentDate = Convert.ToInt32(currentDateTwo);
var prevAccount = "";
int prevDate = 0;
if (currentAccount != prevAccount)
{
forecastTestList.Add(currentAccount + '\t' + currentDate);
}
if (currentAccount == prevAccount)
{
if (currentDate > prevDate)
{
forecastTestList.Remove(prevAccount + '\t' + prevDate);
forecastTestList.Add(currentAccount + '\t' + currentDate);
}
}
prevAccount = currentAccount;
prevDate = currentDate;
//srcheckForecast.WriteLine(valueTwo.Name);
}
foreach (var valueThree in forecastTestList)
{
srcheckForecast.WriteLine(valueThree);
}
}
解决方案
另一种方法是使用Dictionary数据结构来存储每个帐户的最大天数:
var dictionary = new Dictionary<string, int>();
foreach (var valueTwo in resultTwo)
{
var valueString = valueTwo.Name.ToString();
var currentAccount = valueString.Substring(0, valueString.IndexOf('\t'));
var currentDateTwo = (valueString.Substring((valueString.IndexOf('\t') + 1), 10).Replace("/", ""));
int currentDate = Convert.ToInt32(currentDateTwo);
if (!dictionary.TryGetValue(currentAccount, out int value) || currentDate > value)
{
dictionary[currentAccount] = currentDate;
}
}
// transorm dictionary to List<string> of your form
var forecastTestList = dictionary.Select(x => $"{x.Key + '\t' + x.Value}").ToList();
推荐阅读
- python-3.x - 错误:在执行 pip3 install python-geohash 时,命令“x86_64-linux-gnu-gcc”失败,退出状态为 1
- javascript - 创建具有不同 %width 的新 div
- python - 将 numpy 数组列表转换为 5D numpy 数组
- azure-iot-edge - 如何将模拟数据从设备发送到 Azure IoT Edge 设备
- spring - Spring Data Mongo 不会将字段值保留为 null - 这不起作用
- python - 为什么这段代码会产生错误“int is not subscriptable”?
- facebook - flutter_facebook_login CocoaPods 依赖错误
- c# - 这种模式是否可以通过 Akavache 在 ViewModel 中加载和缓存数据并将它们绑定到 Xamarin.Forms 中的 UI?
- mysql - 在 debian 上执行 mysql 查询时出错
- sql - 使用 sql 从列表中插入随机字符串