你会如何将一个布尔值数组转换为像“假,真,真,假”的字符串 - 可能?整洁的代码转换布尔[] - >“假,真,真,假”
Python允许我使用下面的(非常漂亮和干净):
", ".join(map(str, [False, True, True, False]))
在C#中,string.Join
只允许我加入字符串数组。
那么在C#中做同样的简短方法是什么?
你会如何将一个布尔值数组转换为像“假,真,真,假”的字符串 - 可能?整洁的代码转换布尔[] - >“假,真,真,假”
Python允许我使用下面的(非常漂亮和干净):
", ".join(map(str, [False, True, True, False]))
在C#中,string.Join
只允许我加入字符串数组。
那么在C#中做同样的简短方法是什么?
var array = new[] { true, false, false };
var result = string.Join(", ", array.Select(b => b.ToString()).ToArray());
Console.WriteLine(result);
var boolStrings = string.Join(",", new List<bool> { false, true, true, false }
.ConvertAll(x => x.ToString()).ToArray());
如何:
String.Join(", ", new List<Boolean>() { true, false, false, true }.ConvertAll(x => x.ToString()).ToArray())
沿
var s = from item in blnArray select item.Tostring();
然后用枚举s到填充字符串数组东西线?如果您使用的.NET 4这只是我怎么可能接近它,如果有人问我看它......
感谢您的编辑约翰 - 我现在已经了解到(缩进)如何将文本标记为代码... – 2010-02-16 16:11:17
var str = string.Join(", ", new List<Boolean>() {false, true, false}.ToArray());
Console.WriteLine(str.ToString());
var bools = new bool[] {false, true, true, false};
var strings = bools.Aggregate((x,y) => x.ToString()+","+y.ToString());
由于lambda返回值必须是布尔值,因此似乎不起作用。 – AndiDog 2010-02-16 18:08:38
arrayOfBools.Select(x => x.ToString()).Aggregate((x, y) => x + ", " + y)
-
没有实际测试过这,因为String.Join<T>
内部调用ToString()
- 每个项目的方法,下面的行就足够了。
Console.WriteLine(string.Join(", ", new[] { false, true, true, false }));
>>>> False, True, True, False
这会抛出一个'InvalidCastException'。 – 2010-02-16 13:01:30
@Joao,是刚刚编译它,使用ConvertAll更新 – James 2010-02-16 13:02:32
当你指定元素时,你可以在'new List'之后移除'()'。 –
2010-02-16 13:06:08