簡體   English   中英

操作列表中的元素 - c#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM