【发布时间】:2018-03-19 21:08:27
【问题描述】:
这是我需要编辑的部分代码:
private static void SaveMetalToFile(List<Ring> rings)
{
using (StreamWriter writer = new StreamWriter(@"Metalai.txt"))
{
writer.WriteLine("|Metalai |Kiekis|");
string message = String.Empty;
var ringDataList = rings.GroupBy(r => r.Metalas).Select(x => new { Ring = x.FirstOrDefault(), Count = x.Count() }).ToList();
foreach (var item in ringDataList)
{
message = "|" + item.Ring.Metalas + "|" + item.Count + "|";
writer.WriteLine("{0}; {1}", ring.Metalas, message);
}
}
}
应该避免在 Metalai.txt 文件中放置重复项,但还要计算有多少个重复项。我已经做了大约 3 种方法,我的老师说即使它有效,它也很糟糕。他说我必须使用2个变量
(writer.WriteLine("{0}; {1}", ring.Metalas, message))
但问题是我无法让它工作。他说我不能在这个列表中做任何数学运算。应该有2个方法/功能。第一个应该只读取金属数据并区分它,第二个应该计算重复项。无论我如何尝试,我都无法让它工作。
message = "|" + item.Ring.Metalas + "|" + item.Count + "|"; 是错误的,因为它使用数学(加法)。你们能帮帮我吗?
【问题讨论】:
-
那不是加法,那是字符串连接。如果您担心使用符号
+,可以改用string.Concat。虽然注意=也是一个数学符号.. -
The first one should read only metal data and distinct it and the second one should count the duplicates.如果第一种方法使列表不同,则不存在重复项。 Enumerable.Distinct 用于删除重复项。
标签: c# list duplicates