簡體   English   中英

在 c# 中拆分大字符串並將其中的值添加到列表中

[英]Splitting large string in c# and adding values in it to a List

我有一個如下所示的字符串

string names = "<?startname; Max?><?startname; Alex?><?startname; Rudy?>";

有什么辦法可以拆分此字符串並將 Max、Alex 和 Rudy 添加到單獨的列表中?

當然,拆分兩個字符串(所有始終在之前,所有始終在之后)並指定您希望 Split 刪除空值:

var r = names.Split(new[]{ "<?startname; ", "?>" }, StringSplitOptions.RemoveEmptyEntries);

如果您取出 RemoveEmptyEntries,它會讓您更清楚地了解拆分是如何工作的,但本質上沒有它,您的名字會散布在空字符串的數組條目中,因為 split 找到了一個分隔符( <?... ) 緊跟在另一個( ?> )之后,分隔符之間有一個空字符串

您可以在此處閱讀有關這種拆分形式的大量信息 - 這是 netcore3.1 的直接鏈接,您可以在目錄中更改您的版本 - 這種拆分的變體從 framework2.0 開始可用


您確實還說“添加到單獨的列表” - 沒有看到任何代碼,所以我想您要么很樂意繼續使用r此處是“單獨的列表”(實際上是一個數組,但可能足夠等效且簡單如果沒有,則使用 LINQ 的 ToList() 進行轉換,或者如果您有另一個名稱列表(實際上是List<string> ),那么您可以thatList.AddRange(r)

另一個想法是使用正則表達式

以下正則表達式應該可以工作: (?<=; )(.*?)(?=\s*\?>)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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