【问题标题】:How to Format a string in C#如何在 C# 中格式化字符串
【发布时间】:2021-07-28 10:06:30
【问题描述】:

我生成了一个字符串"111,222,333"。使用 C# 我想将其格式化如下:

MyId eq '111' or MyId eq '222' or Id eq '333'

哪种方法是替换/修改字符串的可行解决方案?

【问题讨论】:

标签: c# asp.net-core


【解决方案1】:

我建议这样做:

string generated = "111,222,333";
string[] parts = generated.Split(',');
IEnumerable<string> filters = parts.Select(x => $"MyId eq '{x}'"); 
string result = String.Join(" or ", filters);

这给了我MyId eq '111' or MyId eq '222' or MyId eq '333'

【讨论】:

    【解决方案2】:

    从您的问题来看,您似乎确切地知道将值放入字符串的位置。如果是这种情况,那么您可以使用string.Format 进行操作:

    string data = "111,222,333";
    string result = string.Format("MyId eq {0} or MyId eq {1} or Id eq {2}", data.Split(','));
    

    句子重复时的动态方式

    string data = "111,222,333";
    string[] pieces = data.Split(',');
    List<string> sentences = new List<string>();
    string sentence = "MyId eq {0}";
    
    foreach (var piece in pieces)
    {
       sentences.Add(string.Format(sentence, piece));
    }
    
    string result = string.Join(" or ", sentences);
    

    【讨论】:

      【解决方案3】:

      您可以尝试使用String.Replace。这是一个演示:

      public IActionResult Index()
              {
                  var s = "111,222,333";
                  var result = "MyId eq '" + s.Replace(",", "' or MyId eq '") + "'";
                  return Ok(result);
              }
      

      结果:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-10
        • 2014-07-14
        • 1970-01-01
        • 2021-05-09
        • 2016-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多