2014-06-25 85 views
-1

我有一個這樣的字符串:LINQ的過濾字符串數組

角色ID,角色名稱|類別編號,類別名稱

我第一次分裂他們是這樣的:

string delm = "RoleId,RoleName|CategoryId,CategoryName"; 

string[] FieldsToReplace = attributes[0].IdsToReplaceWith.Split('|'); 

假設我有一個變量,我有RoleId:

string test = "RoleId"; 

現在我想獲得其中有串角色ID各自爲陣的項目,我不希望使用包含我需要精確匹配。

我曾嘗試此查詢:

 var test = FieldsToReplace 
        .Where(x=>FieldsToReplace 
        .All(y => y.Split(',').Equals(delm))).ToArray(); 

我可以harcode這樣的第一指標:

var IdProperty = FieldsToReplace.FirstOrDefault(x => x.Split(',')[0] == delm); 

,但我想它動態的,所以它檢查我,後得到陣列的每個項目分裂。

但它沒有返回記錄。

任何幫助將不勝感激。

+0

y.Split(「」)返回一個數組。也許你需要y.Split(',')[1]? –

+0

我不確定我關注..期望的輸出是什麼? – dcastro

+0

輸出是爲了重新獲得具有Roleid精確匹配的數組項目,實際上我需要在'','''上拆分數組的每個項目,然後檢查是否與RoleId匹配,如果匹配返回該數組的項目 –

回答

2

你想拆分你的數組元素。除此之外似乎是適當的檢查,如果這些分裂者的任何元素都等於你比較字符串:

var test = 
    FieldsToReplace 
     .Where(x => x.Split(',') 
      .Any(y => y.Equals(prop.Name))) 
     .ToArray(); 
+0

我在懷疑我需要使用任何,但我沒有得到放在哪裏..順便說一句 –