sudo apt-get install python python-tk idle python-pmw python-imaging
这里我可能有year2,year3,year4或者它可能包含null。 那么是否有任何可选参数的范围。 错误消息:我得到你有更多的参数列表,所以有任何解决方案。
答案 0 :(得分:1)
重复问题。
让我们看看:c# string.Format optional parameters也有一些有用的答案。
答案 1 :(得分:0)
您可以检查null并使用三元运算来替换string.empty的null。否则,请检查之前的空值,并为每个案例使用不同的格式字符串
答案 2 :(得分:0)
您应该检查字符串是否为null并放入string.Empty,但是您应该在年份文本中包含逗号;如果你不这样做,你会得到一个文字,如“{0} ,,, {3}纳税年度中的公司?”
答案 3 :(得分:0)
你可以在模型中使用所有额外的readonly属性来收集所有年份作为列表/任何内容并使用此列表来获得所有非零年份。
类似的东西:
class YourModelClass
{
public int? Year2 { get; set; }
public int? Year3 { get; set; }
public int? Year4 { get; set; }
public List<int?> Years => new List<int?> {Year2, Year3, Year4};
}
YourModelClass model = new YourModelClass();
string result = $"What Company during the {string.Join(",", model.Years.Where(a => a != null).ToList())} tax years?";
答案 4 :(得分:0)
您可以像这样使用null-coalescing operator
(??
):
string a = null;
string b = "smthing";
string c = "nothing?";
string d = null;
string someString = string.Format
("this is a string with \"optional\" parameters {0} {1} {2} {3}",
a ?? "",
b ?? "",
c ?? "",
d ?? "");
它执行以下操作:
使用自己的值,null
除外,然后使用??
这是一个可靠的答案,但是你需要,
,所以你必须以某种方式构建字符串。
答案 5 :(得分:0)
有三件事:
使用更改年份格式化字符串。
string format = "What Company during the {0} tax years?"
q1 = string.Format(format, yearsList);
多年的过滤列表(不是.net列表)。
years = new []{model.CurYear, model.Year2, model.Year3, model.Year4]
.Where(y => y != null);
加入年份字符串&#39;,&#39;。
yearsList = String.Join(", ", years);
把它们放在一起:
q1 = String.Format(
"What Company during the {0} tax years?",
String.Join(
", ",
new []{model.CurYear, model.Year2, model.Year3, model.Year4]
.Where(y => y!=null))