我可以在string.format中有可选参数吗?

时间:2017-04-20 08:33:42

标签: c# string

sudo apt-get install python python-tk idle python-pmw python-imaging

这里我可能有year2,year3,year4或者它可能包含null。 那么是否有任何可选参数的范围。 错误消息:我得到你有更多的参数列表,所以有任何解决方案。

6 个答案:

答案 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)

有三件事:

  1. 使用更改年份格式化字符串。

    string format = "What  Company during the {0} tax years?"
    q1 = string.Format(format, yearsList);
    
  2. 多年的过滤列表(不是.net列表)。

    years = new []{model.CurYear, model.Year2, model.Year3, model.Year4]
                  .Where(y => y != null);
    
  3. 加入年份字符串&#39;,&#39;。

    yearsList = String.Join(", ", years);
    
  4. 把它们放在一起:

      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))
    
相关问题