2014-06-25 59 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

我在怀疑我需要使用任何,但我没有得到放在哪里..顺便说一句 –