2016-08-26 87 views
-4

我有一個字符串:如何使用Linq在換行符和空格上拆分字符串?

string data = 
"item1 actived 
item2 none 
item special I none 
item special II actived" 

你可以在數據見第4行。 我需要一個字符串分割成一個列表項如下:

item[0]={Name=item1, Status=actived} 
item[1]={Name=item2, Status=none} 
item[2]={Name=item Special I, Status=none} 
item[3]={Name=item Special II, Status=actived} 

我嘗試:

var s = SplitReturn(data); 
public string[] SplitReturn(string name) 
{ 
    return name.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); 
} 

我怎麼可以在我的字符串分割空間,然後轉換成列表?

+1

那麼你的問題是什麼(不要求)? – qxg

+0

沒有顯示你試過的東西,看它有多快被低估...... –

+0

是字符串「item1 actived item2 none item special I none item special II actived」或是「item1 actived \ n \ ritem2 none \ n \ ritem特殊我沒有\ n \ r項目特別活動II「 – Neil

回答

2
string data = 
    @"item1 actived 
    item2 none 

    item special I none 
    item special II actived"; 

var result = data.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries) 
    .Select(item => { 
     int lastSpace = item.LastIndexOf(' '); 
     return new 
     { 
      Name = item.Substring(0, lastSpace).Trim(), 
      Status = item.Substring(lastSpace, item.Length - lastSpace).Trim() 
     }; }).ToList(); 
+0

拋出一個例外:長度不能小於零。 – Jandy

+0

item is empty。@ Gilad Green – Jandy

+0

我得到了名字:item special I none.included狀態。 – Jandy