簡體   English   中英

將定界字符串轉換為KeyValuePair列表 <string,string> 在C#中

[英]Convert a delimited string to a List of KeyValuePair<string,string> in C#

我的問題與在C#中將脫機的字符串轉換為Dictionary <string,string>非常相似,除了要使用Dictionary<String, String> ,我要使用List<KeyValuePair<String, String>> (在我的情況下,這些鍵的順序是-值對很重要)

因此,重新說明我的問題:

我有以下格式的字符串: "key1=value1;key2=value2;key3=value3" 我需要將其轉換為上述鍵值對的List<KeyValuePair<String, String>>

我可以不使用LINQ來做到這一點,但是可以使用LINQ來做到嗎? 如何?

您必須拆分字符串來做一些棘手的事情。 基本上,您需要按主定界符( ';' )進行拆分,因此最終得到: key1=value1key2=value2key3=value3 然后,您用輔助定界符( '=' )分割每一個。 Select為新的鍵值對字符串。 它看起來應該類似於:

var str = "key1=value1;key2=value2;key3=value3";

List<KeyValuePair<string, string>> kvp = str.Split(';')
                                            .Select(x => new KeyValuePair<string, string>
                                                      (x.Split('=')[0], x.Split('=')[1]))
                                            .ToList();

編輯:

Joel Lucsy的評論所建議,您可以將選擇更改為僅拆分一次:

.Select(x => { var p = s.Split('='); return new KeyValuePair<string,string>(p[0],p[1]); })

嘗試用分號分隔,然后用等號分隔每個項目

"key1=value1;key2=value2;key3=value3"
.Split(';')
.Select(x=>{
   var items=x.Split('=');
   return new KeyValuePair<string,string>(items[0],items[1]);
   })
 .ToList()

暫無
暫無

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

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