代码之家  ›  专栏  ›  技术社区  ›  Glory Raj

希望将所有对象列表合并为单个字符串

  •  -1
  • Glory Raj  · 技术社区  · 3 年前

    我有下课

    public class ComponentRedundancy
    {
        public int EquipmentQuantity { get; set; }
        public double RedundancyPercentage { get; set; }
        public Redundancy Redundancy { get; set; }
    }
    

    下面是一个枚举

    [JsonConverter(typeof(JsonStringEnumConverter))]
    public enum Redundancy
    {
        [Description("N")]
        N,
        [Description("N+1")]
        N_PLUS_1,
        [Description("2N")]
        N_MULTIPLY_2
    }
    

      List<ComponentRedundancy> componentRedundancy = new List<ComponentRedundancy>();
      componentRedundancy.Add(new ComponentRedundancy(1, 70, N_MULTIPLY_2));
      componentRedundancy.Add(new ComponentRedundancy(2, 50, N_PLUS_1));
      componentRedundancy.Add(new ComponentRedundancy(3, 40, N));
    

    我正在寻找合并所有这些值和结果会像这在单行字符串

     [1@70%](2N)[2@50%](N+1)[3@40%](N)
    

    1 回复  |  直到 3 年前
        1
  •  1
  •   Rufus L    3 年前

    处理 enum

    private static string Convert(Redundancy r)
    {
        switch (r)
        {
            case Redundancy.N:
                return "N";
            case Redundancy.N_MULTIPLY_2:
                return "2N";
            case Redundancy.N_PLUS_1:
                return "N+1";
            default:
                return string.Empty;
        }
    }
    

    然后我们可以使用 string.Concat 使用 Select

    string results = string.Concat(componentRedundancy.Select(cr =>
        $"[{cr.EquipmentQuantity}@{cr.RedundancyPercentage}%]({Convert(cr.Redundancy)})"));