2011-02-23 57 views
0

這是一個艱難的短語作爲搜索查詢,我沒有運氣。而我對它的看法越多,它就越是一個邏輯問題而不是語法問題。然而,我是C#的新手(8年PHP),我目前正在構建我的第三個窗體表單應用程序,所以可能有一種方法可以完成我想做的事情。C#4.0 - 3個值對(可能更多)。基於值排序

我正在做的是讀取用戶給定的日期格式作爲單個字符串,並將其分成要分配給數組的部分,或者從我在搜索關聯數組時看到的內容,可能是SortedList或字典。

例如

SortedList<string, int> resultArray = new SortedList<string, int>(); 
string dateFormat = "yyyyMMdd" // Just and example 

int yearPos = dateFormat.IndexOf("yyyy"); 
int monthPos = dateFormat.IndexOf("MM"); 
int dayPos = dateFormat.IndexOf("dd"); 

resultArray.Add("yearPos", yearPos); 
resultArray.Add("monthPos", monthPos); 
resultArray.Add("dayPos", dayPos); 

// So, resultArray expressed as an array looks like: 
// resultArray["yearPos"] = 0 
// resultArray["monthPos"] = 4 
// resultArray["dayPos"] = 6 

// Sort List and reassign keys (or values) based on their position value (which is unique) 
// ??????? 

return resultArray; 

理想的情況下,最終的結果,我以後該集合/數組是讓成員通過他們在字符串中的位置值排序。就像這樣:

// resultArray["yearPos"] = 1 
// resultArray["monthPos"] = 2 
// resultArray["dayPos"] = 3 

我想之所以這樣做,是因爲相同的日期格式是用來拉出來使用Regex.Match文件的真實日期。我想使用這些新值來知道日期的每個部分使用哪個匹配組元素。

任何幫助讓我的頭圍繞此將不勝感激。

+2

爲什麼不直接使用Date類直接獲得的年,月,日值是多少? – 2011-02-23 01:35:26

+0

你看過http://stackoverflow.com/questions/5073389/sort-array-list-of-structure-key-value-c? – 2011-02-23 01:43:06

+0

Regex,http://www.codinghorror.com/blog/2008/06/regular-expressions-now-you-have-two-problems.html如果你想分析日期時間,使用日期時間分析器。 – 2011-02-23 01:44:39

回答

1

我想這和它的作品:

DateTime dt; 
if (DateTime.TryParseExact("20110223", "yyyyMMdd", null, 0, out dt)) 
    Console.WriteLine(dt); 
+0

謝謝。 TryParseExact也適合我! – Aaryn 2011-02-23 02:40:33

1

只要使用DateTime.TryParse。你可以傳遞一個格式化字符串,它會爲你做所有的工作。

+0

謝謝。但其中一種日期格式是「yyyyMMdd」(例如20110223)。此方法似乎在任何此類日期都會返回1/01/0001 12:00:00。 – Aaryn 2011-02-23 02:27:49