代码之家  ›  专栏  ›  技术社区  ›  Michael

如何在联接中设置字符串前缀?

c#
  •  -1
  • Michael  · 技术社区  · 6 年前

    我有这些弦:

    string[] codes = new string[]{"66000110", "66000001", "66000121"};
    

    我要在上面的字符串上进行联接:

    string filter = string.Join(" OR " + some_ID + "=", codes );
    

    我得到的结果是:

      some_ID=66000110 OR some_ID=66000001 OR some_ID=66000121
    

    虽然我需要这样的字符串(或在开始字符串上缺少):

          OR some_ID=66000110 OR some_ID=66000001 OR some_ID=66000121
    

    我该如何修复优雅的方式来获得或开始的字符串?

    3 回复  |  直到 6 年前
        1
  •  2
  •   Peter B    6 年前

    string filter = string.Concat(codes.Select(c => " OR " + some_ID + "=" + c));
    
        2
  •  3
  •   Dmitrii Bychenko    6 年前

    你好像在建造某种 ;如果是您的情况,请尝试切换到 IN

    string filter = $" OR {some_ID} IN ({string.Join(", ", codes)})";
    

    " OR some_ID IN (66000110, 66000001, 66000121)"
    
        3
  •  2
  •   TheGeneral    6 年前

    为什么不这样?

    string filter = " or " + string.Join(" OR " + some_ID + "=", codes );