c# – 使用LINQ从字符串中删除字符

c# – 使用LINQ从字符串中删除字符,第1张

概述我想通过编写一些简单的扩展方法来刷新我的LINQ.有没有更好的方法来编写如下功能,从字符(使用LINQ)中删除给定的字符列表? 它有助于我想到LINQ依赖的扩展方法: public static string Remove(this string s, IEnumerable<char> chars){ string removeChars = string.Concat(chars) 我想通过编写一些简单的扩展方法来刷新我的liNQ.有没有更好的方法来编写如下功能,从字符串(使用liNQ)中删除给定的字符列表?

它有助于我想到liNQ依赖的扩展方法:

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

但那很丑陋Ergo liNQ.

我在liNQ语句中注意到的区别是我必须使用’select’,而使用扩展方法,我不必.

/// <summary>Strip characters out of a string.</summary>/// <param name="chars">The characters to remove.</param>public static string Remove(this string s,IEnumerable<char> 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语句来完成字符的删除.

解决方法 我更喜欢使用扩展方法的第一种形式,虽然简化为
public static string Remove(this string s,IEnumerable<char> chars){    return new string(s.Where(c => !chars.Contains(c)).ToArray());}

至于select关键字,则必须以第二种形式. documentation说“查询表达式必须使用select子句或组语句终止”.这就是为什么我会避免liNQ语法糖.

总结

以上是内存溢出为你收集整理的c# – 使用LINQ从字符串中删除字符全部内容,希望文章能够帮你解决c# – 使用LINQ从字符串中删除字符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1236597.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存