C#中如何移除变量中的双引号?附相关MVC代码示例
在C#中移除变量中的双引号的几种方法
针对你的需求,这里有几个实用的方法可以移除字符串变量里的双引号,结合你给出的MVC代码场景,我来具体说明下:
1. 移除所有双引号:使用string.Replace()
这是最常用的方法,可以把字符串中所有的双引号替换为空字符串,适合需要清除所有双引号的场景:
string originalStr = "这是\"带双引号\"的字符串"; string cleanedStr = originalStr.Replace("\"", ""); // 执行后结果:"这是带双引号的字符串"
结合你的MVC代码,如果你是要处理从数据库读取的字段,可以在读取SqlDataReader的时候直接做处理:
public JsonResult GetRemix() { List<Intractive_ReMixList_ForScreenShot> employee = new List<Intractive_ReMixList_ForScreenShot>(); // 这里建议改用参数化查询,避免SQL注入风险! string query = "Select * From Intractive_ReMixList_ForScreenShot where LoginDetailsRowId=@LoginId"; string connectionString = @"Data Source=ITALIAGRP_DATA\DATASERVER;Initial Catalog=StorageManagerNew;User ID=internal;Password=c@rlos150915; Timeout=30000"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand cmd = new SqlCommand(query, connection)) { // 添加参数,避免SQL注入 cmd.Parameters.AddWithValue("@LoginId", 80136); using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { var item = new Intractive_ReMixList_ForScreenShot(); // 替换字段中的所有双引号,同时处理空值避免异常 item.TargetProperty = reader["TargetColumn"].ToString()?.Replace("\"", "") ?? string.Empty; // 其他属性的赋值逻辑... employee.Add(item); } } } } return Json(employee, JsonRequestBehavior.AllowGet); }
小提醒:你的原始SQL直接拼接了条件值,存在SQL注入的安全风险,上面的代码已经改成了参数化查询的写法,建议日常开发都用这种方式哦。
2. 仅移除首尾的双引号:使用string.Trim()
如果你的字符串只是首尾带有双引号(比如"仅首尾有双引号"),而中间的双引号需要保留,那么可以用Trim('"'):
string originalStr = "\"仅首尾有双引号\""; string cleanedStr = originalStr.Trim('"'); // 执行后结果:"仅首尾有双引号"
在你的代码中,只需要把上面的Replace换成Trim('"')就能实现这个效果。
3. 安全处理空值情况
如果数据库字段可能为DBNull或者null,一定要加空值判断,避免触发NullReferenceException,比如:
int columnIndex = reader.GetOrdinal("TargetColumn"); item.TargetProperty = reader.IsDBNull(columnIndex) ? string.Empty : reader[columnIndex].ToString().Replace("\"", "");
这样就能安全处理所有边界情况了。
内容的提问来源于stack exchange,提问作者Rani Thakur




