Eug*_*ene 12 c# arrays conditional-statements
你怎么能在C#中为string []数组执行以下内联条件.根据参数,我想包含一组字符串......或不包含.这个问题是关于stackoverflow的这个问题的后续问题.
//Does not compile
bool msettingvalue=false;
string[] settings;
if(msettingvalue)
settings = new string[]{
"setting1","1",
"setting2","apple",
((msettingvalue==true) ? "msetting","true" :)};
Run Code Online (Sandbox Code Playgroud)
如果msettingvalue为true,我想要包含两个字符串"msetting","true":否则没有字符串.
Edit1 它不一定是一个键值对...如果它是5个字符串是(或不是)添加...我不认为它是那么棘手.
(也......有足够代表的人可以制作"内联条件"或"条件内联"标签吗?)
Ili*_*a G 22
settings = new string[]{"setting1","1", "setting2","apple"}
.Concat(msettingvalue ? new string[] {"msetting","true"} : new string[0]);
.ToArray()
Run Code Online (Sandbox Code Playgroud)
使用通用 List<String>
bool msettingvalue=false;
string[] settings;
var s = new List<String>();
s.AddRange({"setting1","1","setting2","apple"});
if(msettingvalue)
s.AddRange({"msetting","true"});
settings = s.ToArray();
Run Code Online (Sandbox Code Playgroud)
但是......从阵列的外观来看,最好使用不同的结构来存储这些东西.这是你想要的关联数组.您可以使用a Tuple或a Dictionary以更易于处理的方式对设置进行建模,并且更准确地反映语义.
bool msettingvalue=false;
var settings = new Dictionary<String,String>();
settings.Add("setting1","1");
settings.Add("setting2","value2");
if(msettingvalue)
settings.Add({"msetting","true");
Run Code Online (Sandbox Code Playgroud)
......最后两行甚至可以.
settings.Add({"msetting",msettingvalue.ToString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16513 次 |
| 最近记录: |