gpt4 book ai didi

c# - 谁能解释 string.Join 连接的顺序?

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:59 25 4
gpt4 key购买 nike

这里是输入文件内容:

Time,MW
01/01/2014 1:00:00 AM,2617
01/01/2014 2:00:00 AM,2544
01/01/2014 3:00:00 AM,2458
01/01/2014 4:00:00 AM,2395
01/01/2014 5:00:00 AM,2349
01/01/2014 6:00:00 AM,2375
01/01/2014 7:00:00 AM,2359
01/01/2014 8:00:00 AM,2418
...

这是所需的输出:其中 Weekday = 1,Weekend = 0,Winter = 1,Mid = 2,Summer = 3

Time,MW,Hour,Weekday,Season
01/01/2014 1:00:00 AM,2617,1,1,1
01/01/2014 2:00:00 AM,2544,2,1,1
01/01/2014 3:00:00 AM,2458,3,1,1
01/01/2014 4:00:00 AM,2395,4,1,1
01/01/2014 5:00:00 AM,2349,5,1,1
01/01/2014 6:00:00 AM,2375,6,1,1
01/01/2014 7:00:00 AM,2359,7,1,1
01/01/2014 8:00:00 AM,2418,8,1,1
...

代码如下:

var inLines = File.ReadAllText(IN_CSV).Split('\n');
var outLines = new List<string>();
outLines.Add(OUT_CSV_HEADER);
foreach (var line in inLines)
{
if (line.Contains("Time,MW")) continue;
List<string> ocl = BuildOutCsvLine(line);
var oclFinal = "";
ocl.ForEach(o => {
System.Console.WriteLine(o);
oclFinal = string.Join(",", oclFinal, o);
});
System.Console.WriteLine(oclFinal);
break;
//outLines.Add(ocl);
}
private static List<string> BuildOutCsvLine(string inCsvLine) {
var inCsvData = inCsvLine.Split(',');
var timestamp = DateTime.ParseExact(inCsvData[0], "dd/MM/yyyy h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
var season = seasons.GetSeason(timestamp);
var tod = timestamp.Hour.ToString();
var wd = ((int)timestamp.GetWeekDayType()).ToString();
var ssn = ((int)season.Id).ToString();

return new List<string> { inCsvLine, tod, wd, ssn };
}

这是输出:

01/01/2014 1:00:00 AM,2617
1
1
1
,1,1,1/2014 1:00:00 AM,2617

我还尝试使用 StringBuilder 附加所有元素并创建 CSV 字符串,但产生相同的结果。

是否存在任何格式问题(例如,我必须使用的 CultureInfo.InvariantCulture 等)?我尝试了 InvariantCulture,但结果相同。

我对 .NET framefwork 有疑问,是否需要应用一些补丁?

最佳答案

string.Join() 的顺序与您提供的元素的顺序相同。 .Net 不会在内部更改顺序。

关于c# - 谁能解释 string.Join 连接的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32493919/

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