C# 将相同的函数应用于不同的变量

标签 c# linq

string.Format("{0}, {1}, {2}", var1, var2, var3)

我想对每个 var1、var2 和 var3 应用 URL 编码。它不是一个数组,所以我不能使用 Linq 聚合来完成它。

有什么想法吗?

我不想在每个变量周围加上括号。

最佳答案

如果您不想在每个参数周围放置 UrlEncode(...) 或定义辅助函数,唯一的方法是使隐式创建的数组显式并将该方法应用于每个元素:

var args = new[] { var1, var2, var3 };
Array.ConvertAll(args, UrlEncode);
var result = string Format("{0}, {1}, {2}", args);

var args = new[] { var1, var2, var3 };
var result = string Format("{0}, {1}, {2}", args.Select(UrlEncode).ToArray());

或者,如果您只想在元素之间放置逗号:

var result = string.Join(", ", new[] { var1, var2, var3 }.Select(UrlEncode));

使用辅助函数:

var result = string.Format("{0}, {1}, {2}", UrlEncodeAll(var1, var2, var3));

var result = string.Join(", ", UrlEncodeAll(var1, var2, var3));

在哪里

string[] UrlEncodeAll(params string[] args)
{
    Array.ConvertAll(args, UrlEncode);
    return args;
}

关于C# 将相同的函数应用于不同的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3534586/

相关文章:

c# - 无法从用法推断 GroupJoin 方法的类型参数

c# - 我可以简化这个 LINQ 查询吗

c# - 使用 GetPrivateProfileString 读取所有 ini 文件值

c# - 在 MVC 2 中将 css 类添加到 Html.EditorFor

c# - 以类型安全的方式对 Winforms TreeView 进行排序?

c# - Linq:选择分组列表

c# - .NET 服务 OData 从 LINQ 查询返回匿名类型

c# - Web API + HttpClient : An asynchronous module or handler completed while an asynchronous operation was still pending

c# - 为什么我不能将 viewmodel 属性绑定(bind)到自定义控件的依赖属性

c# - LINQ 查询不返回子字段