C#inline条件在string 数组中
你怎么能在C#中对string []数组执行以下内联条件。 根据参数,我想包括一组字符串……或不包括。 这个问题是关于stackoverflow的这个问题的后续问题。
//Does not compile bool msettingvalue=false; string[] settings; if(msettingvalue) settings = new string[]{ "setting1","1", "setting2","apple", ((msettingvalue==true) ? "msetting","true" :)};
如果msettingvalue为true,我想要包含两个字符串“msetting”,“true”:否则没有字符串。
Edit1它不一定是一个键值对…如果它是5个字符串是(或不是)添加…我不认为它是那么棘手。
(也……有足够代表的人可以制作“内联条件”或“条件内联”标签吗?)
settings = new string[]{"setting1","1", "setting2","apple"} .Concat(msettingvalue ? new string[] {"msetting","true"} : new string[0]); .ToArray()
使用通用List
bool msettingvalue=false; string[] settings; var s = new List(); s.AddRange({"setting1","1","setting2","apple"}); if(msettingvalue) s.AddRange({"msetting","true"}); settings = s.ToArray();
但是……从你的arrays看起来你最好使用不同的结构来存储这些东西。 它是你想要的关联数组。 您可以使用Tuple
或Dictionary
以更易于处理的方式对设置进行建模,并且更准确地反映语义。
bool msettingvalue=false; var settings = new Dictionary(); settings.Add("setting1","1"); settings.Add("setting2","value2"); if(msettingvalue) settings.Add({"msetting","true");
……最后两行甚至可以。
settings.Add({"msetting",msettingvalue.ToString());