2012-09-18 48 views
-1

我有一個使用下面的代碼將字符串轉換爲字典的函數。我需要添加第三個分隔符,這是行或記錄分隔符所必需的。目前「,」分隔[屬性,值]和「|」劃定每一對。我無法弄清楚如何添加第三個分隔符來分隔行並將它們添加到我的字典中。將字符串轉換爲字典的C#函數

    var dict = feed.Split(',') 
        .Select(x => x.Split('|')) 
        .ToDictionary(x => x[0], x => x[1]); 
+4

顯示輸入的是什麼樣的 - 我們不能告訴你如何解析它沒有看到輸入。 –

+0

請給出一個示例輸入。 –

+0

字典有鍵和值 - 它根本不清楚你真的有什麼,或者你想要的字典內容是什麼...... –

回答

1

以「/」作爲行分隔符

var dict = x.Split('/').SelectMany(s => s.Split('|')).ToDictionary(t => t.Split(',')[0], t => t.Split(',')[1]); 
+0

這是實際的輸入字符串我試圖用你的代碼換行符作爲第一個分隔符,它是接近的,但我得到一個「索引越界」var dict = feed.Split('\ n' ).SelectMany(s => s.Split('|'))。ToDictionary(t => t.Split(',')[0],t => t.Split(',')[1]); – GoBeavs

+0

輸入「new_permanent | False,new_rcn | 55426,new_Actionid | 4f9d283c-cce7-e111-b08a-000c29c8eb0f,created | 8/16/2012 6:00:23 PM,new_primary | True,new_id | 1,new_processtype | Microsoft。 Xrm.Sdk.OptionSetValue,ownerid | Microsoft.Xrm.Sdk.EntityReference,modifiedon | 2012年8月20日5時07分25秒 – GoBeavs

+0

這工作var dict = x.Split(新字符串[] {「\ r \ n」, 「\ n」},StringSplitOptions.None).SelectMany(s => s.Split('|'))。ToDictionary(t => t.Split(',')[0],t => t.Split '')[1]); – GoBeavs

0

換行符通常用於指示新記錄,如使用CSV文件。真的,任何特殊的字符或序列都可以。