Linq过滤字符串定义字符串

时间:2014-06-25 11:24:53

标签: c# arrays linq linq-to-objects

我有一个这样的字符串:

  
    

角色编号,ROLENAME |类别ID,类别名称

  

我先将它们分开:

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

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

假设我有一个变量,其中我有RoleId:

string test = "RoleId";

现在我想要的每个数组项都包含字符串 RoleId ,我不想使用包含我需要完全匹配。

我试过这个问题:

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

我可以像这样为第一个索引编码:

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

但我希望它是动态的,所以检查,分割后得到的每个数组项。

但它没有返回记录。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您想要拆分数组的元素。除此之外,检查这些分裂的元素是否与您的比较字符串相等似乎是合适的:

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