2017-02-27 53 views
1

我有一個類屬性: -C#瑞風類屬性是一個List <string>

public List<string> szTypeOfFileList{get;set;} 

正如名稱所示,類型感興趣的文件的屬性存儲用戶選擇文件(.txt,.doc和。 rtf,.pdf等)。

我試圖評估是否有辦法,因爲它是由用戶輸入填充,我可以完善這一列表,或者,我是否應該等到所有條目,然後調用一個單獨的方法來完善財產。

我的意思是這是什麼,比方說,一個特定的用戶輸入是名爲「.doc/.DOCX」。目前,這將作爲單個字符串項存儲在列表中。不過,我希望它分開存儲爲兩個項目。這將保持代碼在一個地方,並不會影響未來的模塊等。

private List<string> _szTypeOfFileList = new List<string>(); 
public List<string> szTypeOfFileList 
{ 
    get 
    { 
     return _szTypeOfFileList; 
    } 
    set 
    { 
     // Some kind of validation/refining method here ?? // 
    } 
} 

編輯: -

因爲我FileTypeList從CheckBoxList的到來,我不得不使用不同的方法,比我接受了答案(這我指出了正確的方向)。

foreach (object itemchecked in FileTypeList.CheckedItems) 
     { 
      string[] values = itemchecked.ToString().Split('/'); 
      foreach(var item in values) 
       TransactionBO.Instance.szTypeOfFileList.Add(item); 
     } 

我的代碼的這部分在傳遞到Business類之前在UI類中。

+0

用'sz'前綴是什麼? –

+2

匈牙利符號2017?哇... – l33t

+0

我只是一個學生,寬容我。:) – Philo

回答

1

如果您知道它總是會以「/」字符拆分,只需在字符串上使用拆分即可。包括驗證,以防止明顯的重複的簡單一點,你可能會做線沿線的東西:

string[] values = x.Split('/'); 
foreach (string val in values) { 
    if (!_szTypeOfFileList.Contains(val.ToLower().Trim())) { 
     _szTypeOfFileList.Add(val.ToLower().Trim()); 
    } 
} 

您還可以使用字符數組代替了「/」分裂對抗,如果您需要考慮那個地方的多個角色。

+0

在這種情況下x是什麼? – Philo

+0

它是來自傳入列表的字符串的佔位符(例如,來自集合內的「foreach(值爲字符串x)」)。感謝羅布 –

+0

。由於我的工作流程有點不同,我不得不使用不同的技術。將它添加到上面的代碼中,讓我知道你的想法。 – Philo

0
var extensions = userInput.Split('/').ToList(); 
1

我會考慮改變List的東西更通用。他們是否真的需要一個List ...或者一個集合?陣列?枚舉? (請通讀this link

秒,在您的Set方法中,您需要接受他們的輸入,分解並添加它。問題在於:列表是實現它的最佳方式嗎?
重複數據怎麼辦?你只是再添加一次?你需要搜索它,以便弄清楚你是否要添加它?

想想字典或哈希表,或任何集合的類型,這將幫助您與您的數據。我會讀通過:this question(哦,我...錯了鏈接...雖然沒有人抱怨......這麼多的提供鏈接... :)