C# 我可以在一行代码中读取数组吗?

C# 我可以在一行代码中读取数组吗?,c#,lambda,C#,Lambda,假设我有一个数组int[]arr={1,2,3,4} 我想把它转换成一个字符串。 结果我希望它像以下字符串a=“1,2,3,4” 所以我可以用“stringa=arr…”来代替编写for循环吗 谢谢您可以使用字符串。加入: int[] arr = new [] { 4, 5, 6, 7 }; string joined = String.Join(",", arr); 有关更多信息,请参阅。从.NET 4开始,您只需执行以下操作: var result = string.Join( ",",

假设我有一个数组int[]arr={1,2,3,4}

我想把它转换成一个字符串。 结果我希望它像以下字符串a=“1,2,3,4”

所以我可以用“stringa=arr…”来代替编写for循环吗


谢谢

您可以使用字符串。加入:

int[] arr = new [] { 4, 5, 6, 7 };
string joined = String.Join(",", arr);

有关更多信息,请参阅。

从.NET 4开始,您只需执行以下操作:

var result = string.Join( ",", arr );
在早期版本中

var result = string.Join( ",", arr.Select( a => a.ToString() ).ToArray() );
如果您不能使用.NET4(因为我们的客户没有部署它,所以我还不能),那么您可以使用扩展方法。这将适用于所有具有适当实现的.ToString()重写的
IEnumerable
。你也可以选择你想要的分离器

一旦有了下面的代码,您就可以执行
string s=myenumerable.separated(“,”)

公共静态类EnumerableXtender
{
公共静态字符串分隔符(此IEnumerable l,字符串分隔符)
{
var sb=新的StringBuilder();
var first=真;
foreach(l中的变量o)
{
如果(first)first=false;否则某人追加(分隔符);
某人附加(o.ToString());
}
使某人返回字符串();
}
} 

<代码>除了你不需要中间所有的东西。Join将只使用一个字符串Array@Josh:如果您使用的是.NET 4.0.+1-对于.NET 4.0之前的程序员来说,这是一个示例,他们不想仅仅为了进行特定的API调用而创建全新的数组。
var result = string.Join( ",", arr.Select( a => a.ToString() ).ToArray() );
public static class EnumerableExtender
    {
        public static string Separated<T>(this IEnumerable<T> l, string separator)
        {
            var sb = new StringBuilder();
            var first = true;
            foreach (var o in l)
            {
                if (first) first = false; else sb.Append(separator);
                sb.Append(o.ToString());
            }
            return sb.ToString();
        }
    }