如何使用尽可能少的代码行将一个布尔数组转换为“false,true,true,false”之类的字符串?
Python允许我使用以下(非常好和干净):
", ".join(map(str, [False, True, True, False]))
在C#中,string.Join
只允许我加入一个字符串数组。
那么在C#中做同样的简短方法是什么?
答案 0 :(得分:27)
var array = new[] { true, false, false };
var result = string.Join(", ", array.Select(b => b.ToString()).ToArray());
Console.WriteLine(result);
答案 1 :(得分:4)
怎么样:
String.Join(", ", new List<Boolean>() { true, false, false, true }.ConvertAll(x => x.ToString()).ToArray())
答案 2 :(得分:4)
arrayOfBools.Select(x => x.ToString()).Aggregate((x, y) => x + ", " + y)
答案 3 :(得分:3)
如果您使用的是。NET 4 ,则以下行就足够了,因为String.Join<T>
内部会为每个项目调用ToString()
- 方法。
Console.WriteLine(string.Join(", ", new[] { false, true, true, false }));
>>>> False, True, True, False
答案 4 :(得分:2)
var boolStrings = string.Join(",", new List<bool> { false, true, true, false }
.ConvertAll(x => x.ToString()).ToArray());
答案 5 :(得分:1)
的内容
var s = from item in blnArray select item.Tostring();
然后使用枚举s来填充字符串数组?
实际上没有对此进行过测试 - 如果我被要求查看它,这就是我可以接近它的方式......
答案 6 :(得分:1)
var str = string.Join(", ", new List<Boolean>() {false, true, false}.ToArray());
Console.WriteLine(str.ToString());
答案 7 :(得分:1)
var bools = new bool[] {false, true, true, false};
var strings = bools.Aggregate((x,y) => x.ToString()+","+y.ToString());