我目前有一些代码可以按字母顺序对字符串进行排序。我想根据日历年对它进行分类。我已经看到了在这个网站上做到这一点的方法,但不能专门将它们应用到我的代码中。我需要添加什么才能按顺序排序(1月,2月等)。
将数月读入数组的代码:
var month1Values = File
.ReadAllLines(monthFilePath)
.Select(x => new { Name = monthFilePath, Sort = DateTime.ParseExact(x, "MMMM", CultureInfo.InvariantCulture) })
.ToArray();
要排序的代码:
if (SortFile == 3)
{
comparison1 = string.Compare(fileData[index].MonthValues,
fileData[index + 1].MonthValues) > 0;
if (comparison1)
{
temp = fileData[index].MonthValues;
fileData[index].MonthValues = fileData[index + 1].MonthValues;
fileData[index + 1].MonthValues = temp;
swap = true;
}
}
错误出现在asterix的位置:
for (var index = 0; index < datasize; index++)
{
fileData[index] = new FileData
{
DayValues = day1Values[index],
MonthValues = *month1Values[index]*,
};
}
错误读取无法转换类型'&lt; annonymous type:string Name,System.DateTime Sort&gt;' '字符串'。我该如何解决这个问题?
答案 0 :(得分:0)
您正在Select
指令(第一个代码框,第3行)中创建匿名数据类型,而不是依赖DateTime
类型。运行时不知道如何将匿名类型转换为String
。
这应该按预期工作:
.Select(x => DateTime.ParseExact(x, "MMMM", CultureInfo.InvariantCulture))
请注意,正常的DateTime
- &gt; String
广告投放涉及仅在给定的月份创建完整日期;这涉及假设日期和年份是当前的,以小时,分钟和秒为零。