Tag: concatenation

为什么连接SQL字符串是一个坏主意?

我已经读过这样连接SQL字符串是个坏主意: cmd.CommandText = “Insert INTO workers Values (” + User.Identity.Name + “,” + WorkerName.Text + “,” + GetUniqueWorkerKey() + “);”; 所以推荐的方式是: cmd.CommandText = “Insert INTO workers Values (@Username, @WorkerName, @WorkerKey)”; cmd.Parameters.AddWithValue(“@Username”, User.Identity.Name); cmd.Paramters.AddWithValue(“@WorkerName”, TheWorkerNameYouPassedToThisMethod); 自从我读到它以来,我一直在避免连接SQL字符串,但我从未真正知道不这样做的理由。 AddWithValue()方法最终不会在场景后面执行相同的字符串连接吗? 也许该方法剥离特殊字符并将字符转换为html实体以防止sql注入,但我可以在连接我的SQL之前完成所有这些,我也得到相同的效果,不是吗? 或者是否有其他原因不练习SQL的字符串连接?

C#+运算符调用string.concat函数?

可能重复: C#是否优化了字符串文字的串联? 我刚刚发现我们写了这样一行: string s = “string”; s = s + s; // this translates to s = string.concat(“string”, “string”); 但是我通过reflection器打开了字符串类,我没看到这个+运算符在哪里重载? 我可以看到==和!=超载。 [TargetedPatchingOptOut(“Performance critical to inline across NGen image boundaries”)] public static bool operator ==(string a, string b) { return string.Equals(a, b); } [TargetedPatchingOptOut(“Performance critical to inline across NGen image boundaries”)] public static bool operator […]

String.Concat效率低下的代码?

我在调查String.Concat :(reflection器) 很奇怪 : 有值数组, 他们创建了一个新的arrays,之后他们将他送到ConcatArray 。 题 : 为什么他们创建了一个新arrays? 他们从一开始就有价值…… 编辑 代码: public static string Concat(params string[] values) { if (values == null) { throw new ArgumentNullException(“values”); } int totalLength = 0; string[] strArray = new string[values.Length]; for (int i = 0; i < values.Length; i++) { string str = values[i]; strArray[i] = (str […]

连接两个Func委托

假设我有类: public class Order { int OrderId {get; set;} string CustomerName {get; set;} } 我也在下面声明变量 Func predicate1 = t=>t.OrderId == 5 ; Func predicate2 = t=>t.CustomerName == “Ali”; 有没有办法连接这些变量(用AND / OR)并将结果放在第三个变量? 例如: Func predicate3 = predicate1 and predicate2; 要么 Func predicate3 = predicate1 or predicate2;

连接多个IEnumerable

我正在尝试实现一个连接多个List的方法,例如 List l1 = new List { “1”, “2” }; List l2 = new List { “1”, “2” }; List l3 = new List { “1”, “2” }; var result = Concatenate(l1, l2, l3); 但我的方法不起作用: public static IEnumerable Concatenate(params IEnumerable List) { var temp = List.First(); for (int i = 1; i < List.Count(); i++) […]

在C#中使字符串连接更快

可能重复: 使用C#的最佳字符串连接方法是什么? 嗨, 我有一个像这样的代码片段,从文件中读取大量数据并检查每个位置的某些值并连接一个字符串。 这种字符串连接需要大量的时间和处理能力。 有没有办法减少执行时间? 重要提示:阅读内容文件语法不正确只需要提出一个想法 string x; while (var < File.Length) { if (File.Content[var] == "A") { x += 1; } else { x += 0; } var++; }

连接byte 的C#列表

我正在创建几个需要连接在一起创建一个大字节数组的字节数组 – 我宁愿不使用byte [],但在这里别无选择…… 我在创建它们时将每个添加到List中,所以我只需要在拥有所有byte []后进行连接,但我的问题是,实际执行此操作的最佳方法是什么? 当我有一个包含未知数量的byte []的列表时,我想将它们连在一起。 谢谢。

如何将多个TextReader串在一起?

我有3个TextReaders – StreamReaders和StringReaders的组合。 从概念上讲,它们的串联是单个文本文档。 我想调用一个带有单个TextReader的方法(不在我的控制之下)。 是否有任何内置或简单的方法可以从多个TextReader中连接TextReader? (我可以编写自己的TextReader子类,但它看起来相当多。在这种情况下,我只是将它们全部写入临时文件,然后用一个StreamReader打开它。) 有一个简单的解决方案,我错过了吗?

将安全的SQL语句创建为字符串

我正在使用C#和.NET 3.5。 我需要生成并存储一些T-SQL插入语句,稍后将在远程服务器上执行。 例如,我有一个Employees数组: new Employee[] { new Employee { ID = 5, Name = “Frank Grimes” }, new Employee { ID = 6, Name = “Tim O’Reilly” } } 我需要最终得到一个字符串数组,如下所示: “INSERT INTO Employees (id, name) VALUES (5, ‘Frank Grimes’)”, “INSERT INTO Employees (id, name) VALUES (6, ‘Tim O”Reilly’)” 我正在查看一些使用String.Format创建insert语句的代码,但这感觉不对。 我考虑使用SqlCommand(希望做这样的事情 ),但它没有提供将命令文本与参数组合的方法。 仅仅替换单引号并构建字符串就足够了吗? string.Format(“INSERT INTO […]