Tag: 字符串

entity framework查询中string.Trim()的行为

我正在尝试将名称列表复制到SQL Server表中,为此我有一个Entity Framework项目设置。 名称列表具有重复值,并且几个名称的末尾有空格。 我希望只插入表中尚未包含的名称,以及从它们的末尾修剪空格。 看起来相当简单吧? 我的解决方案是: if (!context.Names.Any(n => n.Value == nameToCopy.Trim()) context.Names.Add(nameToCopy.Trim()) NB。 这不是我的确切代码,只是一个例子,所以不必提及我正在修剪两次! 令我惊讶的是,上述方法并不像我预期的那样有效。 我在发现上述语句时发现, if (!context.Names.Any(n => n.Value == nameToCopy.Trim())实际上并不查询nameToCopy的修剪版本 – 几个查询过的名称他们的结尾有空格。 但是,如果我执行以下操作,则按预期工作: string trimmedName = nameToCopy.Trim() if (!context.Names.Any(n => n.Value == trimmedName) context.Names.Add(trimmedName) 任何人都可以解释为什么第一个解决方案不在数据库查询中使用剪裁版本的字符串? 谢谢

字符串格式 – 如何更改负号位置

我有一个string.Format像这样: string Test = string.Format(“{0:#,0}”, NegativeNumber); 如何更改负号位置(方向 – >左或右)?

用C#读取ini文件

我正在尝试读取具有以下格式的ini文件: SETTING=VALUE SETTING2=VALUE2 我目前有以下代码: string cache = sr.ReadToEnd(); string[] splitCache = cache.Split(new string[] {“\n”, “\r\n”}, StringSplitOptions.RemoveEmptyEntries); 这给了我一个设置列表,但是,我想要做的是把它读成字典。 我的问题是,有没有办法在不迭代整个数组并手动填充字典的情况下执行此操作?

Flex / Flash / Java / C中的漂亮日期文本#

是否有一个免费的图书馆或类来以一种漂亮的方式格式化日期,例如“5分钟前”或“昨天”? 我对另一种语言中的相同代码感到满意,我可以将其移植到Actionscript(如Java或C#)

使用字符串格式的信用卡号码

我正在尝试将信用卡号显示为字符串,如#### #### #### #### 我试过了: txtbox.Text = string.Format(“{0:#### #### #### ####}”, ccNumber); 它不起作用。 有任何想法吗?

删除字符串的最佳方法是什么?

我需要具有最佳性能的想法来删除/过滤字符串 我有: string Input = “view(‘512’, 3, 159);”; 删除“view(”和“)的最佳性能方法是什么;” 和报价? 我可以做这个: Input = Input.Replace(“view(“,””).Replace(“‘”,””).Replace(“\””,””).Replace(“);”,””); 但它似乎相当不优雅。 Input.Split(‘(‘)[1].Split(‘)’)[0].Replace(“‘”, “”); 看起来好多了 我希望不使用正则表达式; 我需要尽可能快地完成应用程序。 提前致谢! 🙂

将长字符串分成60个字符的长行,但不要破坏单词

必须有一个更好的方法来做到这一点。 我只想将长字符串分成60个字符行,但不要破坏单词。 因此,它不必添加多达60个字符,只需要小于60。 下面的代码是我所拥有的并且它有效,但我认为有更好的方法。 任何人? 修改为使用StringBuilder并修复了删除重复单词的问题。 也不想使用正则表达式,因为我认为这将比我现在的效率低。 public static List FormatMe(String Message) { Int32 MAX_WIDTH = 60; List Line = new List(); String[] Words; Message = Message.Trim(); Words = Message.Split(” “.ToCharArray()); StringBuilder s = new StringBuilder(); foreach (String Word in Words) { s.Append(Word + ” “); if (s.Length > MAX_WIDTH) { s.Replace(Word, “”, 0, s.Length […]

除了“www”之外的任何字符串的正则表达式? (子域)

我想知道是否有人可以帮助我使用C#中的正则表达式。 我认为这很简单,但我一直在嘲笑它,不太清楚为什么我会遇到这么困难。 🙂 我已经找到了几个例子,但我似乎无法操纵它们去做我需要的东西。 我只需要匹配任何不是“www”的字母数字+破折号子域名字符串,并且只需要匹配“。” 另外,理想情况下,如果有人输入“www.subdomain.domain.com”,我希望尽可能忽略www。 如果没有,这不是一个大问题。 换句话说,我想匹配: (测试) .domain.com (test2) .domain.com (wwwasdf).domain.com (asdfwww).domain.com (w) .domain.com (wwwwww).domain.com (asfd-12345-www-bananas) .domain.com 万维网。 (子域名) .domain.com 我不想匹配: (www) .domain.com 在我看来它应该很容易,但我遇到了“不匹配”部分的麻烦。 对于它的价值,这是在IIS 7 URL重写模块中使用,以重写所有非www子域。 谢谢!

按元素长度排序字符串数组

有一个字符串数组如何更新它,以便它的元素按其长度排序。 我在努力 string[] arr = {“aa”,”ss”,”a”,”abc”}; arr = arr.OrderBy(aux => aux.Length); 所以,我会得到a,aa,ss,abc ,但它说 不能隐式转换类型’system.linq.iorderedenumerable到string []’ 所以,我在做 foreach (string s in arr.OrderBy(str => str.Length)) { // } 还有其他办法吗?

如何加速循环? 是否有一个课程来替换多个术语?

循环: var pattern = _dict[key]; string before; do { before = pattern; foreach (var pair in _dict) if (key != pair.Key) pattern = pattern.Replace(string.Concat(“{“, pair.Key, “}”), string.Concat(“(“, pair.Value, “)”)); } while (pattern != before); return pattern; 它只是在一堆键上重复查找和替换。 字典只是 。 我可以看到2个改进。 每次我们执行pattern.Replace它再次从字符串的开头搜索。 如果它碰到第一个{ ,它只会查看匹配的键列表(可能使用二进制搜索),然后替换适当的一个,那会更好。 pattern != before bit pattern != before是我如何检查在迭代期间是否有任何替换。 如果pattern.Replace函数返回了实际发生的实际替换次数,我不需要这个。 但是……我真的不想写一个很讨厌的东西来做这一切。 这必须是一个相当普遍的情况? 有没有现成的解决方案? 全class […]