[英]manipulate elements in a list - c#
我有以下模式的字符串列表:“name\middleName”。 變成所有元素都只是“名稱”的列表的最好方法是什么? (即拆分字符串,只留下“名稱”部分)
謝謝,李
List<string> originalList = ...
List<string> newList = originalList.Select(s => s.Split('\\')[0]).ToList()
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);
});
//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("\\")));
這會將您的字符串列表的副本制作成您想要的格式的新列表。
標記“/”並將第一個字符串分配給名稱變量。 或者只是對列表中的所有這些字符串進行循環,然后在循環內對字符串長度進行循環,將字符放入變量中並在到達“/”時退出,然后將其存儲為名稱。
這是一個不創建新列表的正則表達式解決方案。
for(int i = 0; i < list.count; i++)
{
list[i] = Regex.Match(List[i],@"^\w+").value
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.