我正在构建一个程序,我从文件中读取并将文件的每一行放入对象列表中。
List<DataRecord> vListOfRecords = new List<DataRecord>();
之前我做了同样的program但是我被指示将数据读入对象并将这些对象放入List&lt;&gt;中,不要问为什么请。这样我就可以对物品进行分类。
无论如何我正在尽我所能来模仿我提供的链接,但我找不到一种方法来设置一个布尔值到List.MoveNext()方法。那么有一个列表的方法可以做到这一点吗?
或者有没有办法打破这个我没有看到的循环?
//Sort list by control vaiable.
if (control == "1")
{
SortByAccount sortByAccount = new SortByAccount();
vListOfRecords.Sort(sortByAccount);
//set up control for account to switch
var vAccount = string.Empty;
foreach (DataRecord d in vListOfRecords)
{
do
{
var vParseSettleMM = d.settleMM;
var vParseOpen = d.open;
var vParseBuy = d.buy;
var vParseSell = d.sell;
//adding temp variabels to sum
vSettleMMSum += vParseSettleMM;
vOpenSum += vParseOpen;
vBuySum += vParseBuy;
vSellSum += vParseSell;
}
//sets up when to loop
while (vAccount == d.account);
//After each Break need to print out Account name and sums from above.
// Do printing here as part of the loop, at the very end of the loop code block.
Console.WriteLine("--------------------------------------------------------");
Console.WriteLine(vAccount + " " + vSettleMMSum + " " + vOpenSum + " " + vBuySum + " " +
vSellSum);
vWriteFile.WriteLine("{0},{1},{2},{3},{4}", vAccount, vOpenSum, vBuySum, vSellSum, vSettleMMSum);
//reset sums for next loop
vSettleMMSum = 0;
vOpenSum = 0;
vBuySum = 0;
vSellSum = 0;
}
}
答案 0 :(得分:0)
列表有一个底层的枚举器,您可以使用它来获取MoveNext方法:
List<Something> somelist = new List<Something>();
List<Something>.Enumerator enumerator = somelist.GetEnumerator();
enumerator.MoveNext()
答案 1 :(得分:0)
您无法按照要求的方式获得所需的结果(在foreach循环中使用MoveNext)
您有两个简单的选择:
linq GroupBy的示例代码:
var grouped = vListOfRecords.GroupBy(x=>x.account);
foreach(var group in grouped)
{
foreach(var record in group)
{
//your sums
}
// your group outputs
}
我会使用这种方法而不是前者。