当前位置:  开发笔记 > 编程语言 > 正文

使用LINQ从字符串中删除字符

如何解决《使用LINQ从字符串中删除字符》经验,为你挑选了1个好方法。

我正在尝试通过编写一些简单的扩展方法来刷新我的LINQ.有没有更好的方法来编写如下函数从字符串中删除给定的字符列表(使用LINQ)?

它帮助我思考LINQ首先依赖的扩展方法:

public static string Remove(this string s, IEnumerable chars)
{
    string removeChars = string.Concat(chars);

    return new string(s.ToCharArray().Where(c => !removeChars.Contains(c)).ToArray());
}

但那很难看.Ergo LINQ.

我在LINQ语句中注意到的差异是我必须使用'select'而使用扩展方法,我不必这样做.

/// Strip characters out of a string.
/// The characters to remove.
public static string Remove(this string s, IEnumerable chars)
{
    string removeChars = string.Concat(chars);

    var stripped = from c in s.ToCharArray()
                   where !removeChars.Contains(c)
                   select c;

    return new string(stripped.ToArray());
}

所以我想知道这个(上面的最后一个片段)是否是用于完成字符删除的最简洁的LINQ语句.



1> Alexander Pr..:

我更喜欢第一种形式的扩展方法,虽然简化为

public static string Remove(this string s, IEnumerable chars)
{
    return new string(s.Where(c => !chars.Contains(c)).ToArray());
}

至于select关键字,它是第二种形式的强制性.该文件说什么"的查询表达式必须以select子句或group子句结束".这就是为什么我会避免使用LINQ语法糖.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有