作者nature23306 (pART)
看板C_Sharp
标题[问题] 两矩阵,一矩阵排序後同理於另一矩阵
时间Fri Jun 19 17:44:19 2015
标题实在不知道怎麽打 @_@"
要问的问题有点复杂 我尽量讲清楚一些
有一个DateTime list 里面存三笔日期
List<DateTime> mylist = new List<DateTime> { 2014/8/2, 2014/1/16, 2015/6/19 };
另外还创了一个 _id的list 里面的字串分别代表 mylist的星期
List<string> _id = new List<string> { "Sat", "Wed", "Fri" };
之後把 mylist 照日期排,也就变成
mylist[0] = 2014/1/16
mylist[1] = 2014/8/2
mylist[2] = 2015/6/19
但我也想把 _id 里的日期按照 mylist 的index变化作处理
期望看到的是:
_id[0] = Wed
_id[1] = Sat
_id[2] = Fri
这问题是双list之间的index变化
我用硬解法有写出来(程式码在最下面),但用两个for loop感觉速度就很慢...
不知道C#有没有内建的功能可以办到
Source code:
(从Main以下开始)
List<string> _id = new List<string> { "Sat", "Wed", "Fri" };
List<string> _newid = new List<string>();
DateTime _for1 = new DateTime(2014, 8, 2);
DateTime _for2 = new DateTime(2014, 1, 16);
DateTime _for3 = new DateTime(2015, 6, 19);
DateTime[] backup = new DateTime[3] { _for1, _for2, _for3 };
List<DateTime> mylist = new List<DateTime> { _for1, _for2, _for3 };
mylist.Sort((x, y) => { return x.Date.CompareTo(y.Date); });
for (int i = 0; i < backup.Count(); i++)
{
for (int j = 0; j < list.Count(); j++)
{
if (backup[j] == mylist[i])
{
_newid.Add(_id[j]);
}
}
}
Console.WriteLine("{0}\n{1}\n{2}", _newid[0], _newid[1], _newid[2]);
Console.ReadLine();
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.137.20.70
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1434707062.A.D67.html
1F:推 johnpage: 日期与星期合成一个类别,排序那个类别 06/19 17:50
这方法好像不错,待会来试试
有问题还请j大教我 ^_^
补充: 谢j大说的方法 已简单的完成了
2F:推 YahooTaiwan: 你是想要做一个可以排序的 KeyValuePair ? 06/19 18:14
这名词好专业,可以请大大讲解一下吗
3F:推 CrazyAngel: 有日期不就知道是星期几了? 06/19 22:16
4F:→ fo40225: DayOfWeek 属性不就有星期几了? 06/19 22:19
我打的这个是一个例子
假设把_id里的value改成其他的,就没办法那样做了
※ 编辑: nature23306 (140.137.20.70), 06/20/2015 15:39:02
※ 编辑: nature23306 (140.137.20.70), 06/20/2015 18:29:32
5F:推 finalshinji: 自订类别啊 07/24 18:18