繁体   English   中英

分配变量(用于解析列表的foreach循环)

[英]Assigning variables (foreach loop for parsing list)

我正在使用Concat将两个列表合二为一:

var results = firstPart.Concat(secondPart);

然后我想为列表中的每个项目分配变量,因为我在方法中使用它们。 这是有效的,但我认为这是错误的编码,因为它分配变量 X 次(分配与列表中的记录一样多)?。

这是当前代码:

            foreach (var item in results)
            {

                var NRO = item.NRO.TrimStart().TrimEnd();
                var NRO1 = item.NRO1.TrimStart().TrimEnd();
                var SNAME = item.SNAME.TrimStart().TrimEnd();
                var NAMEA = item.NAMEA.TrimStart().TrimEnd();
                var NAMEB = item.NAMEB.TrimStart().TrimEnd();
                var LY = item.LY.TrimStart().TrimEnd();

                Console.WriteLine(
                    NRO + " " + NRO1 + " " + SNAME + " " +
                    NAMEA + " " + NAMEB + " " + LY
                    );

                CreateCustomer(
                NRO, NRO1, SNAME, NAMEA, NAMEB, LY);

            }

    public static void CreateCustomer(string NRO, string NRO1, string SNAME,
        string NAMEA, string NAMEB, string LY)

有没有更好的解决方案?

没有害处,一旦你的 for 块结束,这些变量将被销毁。 但很少有改进的建议。

  1. 使用.Trim()而不是.TrimStart().TrimEnd()
  2. 如果可能的话,在结果项 class 中移动CreateCustomer()的实现 - 所以您必须只使用item.CreateCustomer()
  3. 最好在 Console.WriteLine() 中写入占位符"{0}/{1}"而不是 plus(+) 连接

快乐编码

你所拥有的没有任何问题。 您创建的变量将是短暂的,因此没有 memory 浪费。 如果您没有Console.WriteLine() ,JIT 编译器甚至可能会将它们内联到 object 构造函数中(但不要仅仅因为这个原因就去掉它——差异可以忽略不计)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM