我有一個以下模式的字符串列表:「name \ middleName」。 什麼是最好的方式變成一個列表,其中所有的元素只是「名稱」? (即分割字符串,只留下了「名」的一部分)操縱列表中的元素-c#
感謝, 李
我有一個以下模式的字符串列表:「name \ middleName」。 什麼是最好的方式變成一個列表,其中所有的元素只是「名稱」? (即分割字符串,只留下了「名」的一部分)操縱列表中的元素-c#
感謝, 李
List<string> originalList = ...
List<string> newList = originalList.Select(s => s.Split('\\')[0]).ToList()
//your list of strings in format (name\middleName)
List<string> list;
List<string> newList;
foreach(string item in list)
newList.Add(item.Substring(0, item.IndexOf("\\")));
這將使你的字符串列表的副本到一個新的格式像你想。
Tokenize「/」並將第一個字符串分配給名稱變量。 或者只是將所有這些字符串循環到列表中,並且在循環內對字符串長度進行循環,將字符串變爲變量並在到達「/」時退出並將其存儲爲名稱。
List<string> original = ...
List<string> nameOnly = original.ConvertAll(s => s.Substring(0, s.IndexOf('\\')));
如果有可能,有可能無法在原始列表的一些元素\
字符,那麼你就需要一個額外的檢查,以避免例外:
List<string> nameOnly = original.ConvertAll(s => {
int i = s.IndexOf('\\');
return (i == -1)
? s
: s.Substring(0, i);
});
下面是正則表達式的解決方案你沒有創建一個新的列表。
for(int i = 0; i < list.count; i++)
{
list[i] = Regex.Match(List[i],@"^\w+").value
}
您可能是指'[0]'來獲取'name'部分。 – 2011-05-26 16:22:32
實際上應該是元素[0],但+1是一個很好的解決方案。編輯:艾哈邁德擊敗了我。 :) – Rohrbs 2011-05-26 16:23:06
噢,因爲某種原因,我想這個名字是在'\\'之後的。現在修復 – 2011-05-26 16:24:21