Tag: 字符串

ConfigurationManager.ConnectionStrings从machine.config返回额外的连接字符串

我正在写一个Windows服务,我需要在App.config中定义的所有连接字符串的列表。 我使用System.Configuration.ConfigurationManager.ConnectionStrings来获取所有连接。 它总是返回这个额外的连接: data source =。\ SQLEXPRESS; Integrated Security = SSPI; AttachDBFilename = | DataDirectory | aspnetdb.mdf; User Instance = true 我认为是在machine.config中添加的。 我的App.config是: 无论如何,我只能得到App.config中定义的连接字符串(不是machine.config中的那个) 我可以删除它,但我想知道是否有更清洁的方式! 谢谢

打印时如何确定字符串的宽度?

我正在创建一个自定义控件,其中一部分是使用Graphics类将颜色绘制到表单中。 目前我正在使用以下代码来显示它: private float _lineHeight { get { return this.Font.Size + 5; } } private void Control_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); Brush b = new SolidBrush(Colors[7]); g.DrawString(“Hello World!”, this.Font, b, 0, 2); g.DrawString(“This has been a test of the emergency drawing system!”, this.Font, b, 0, 2 + _lineHeight); } 我目前正在使用固定宽度字体,我想知道字体显示的宽度,但似乎没有这种信息的任何属性。 有没有办法获得它? […]

使用System.IO.BinaryWriter编写字符串与char数组的区别

我正在使用C#将文本写入二进制文件,并查看写入字符串和字符数组之间的数量差异。 我正在使用System.IO.BinaryWriter并在写入时观察BinaryWriter.BaseStream.Length。 这些是我的结果: using(BinaryWriter bw = new BinaryWriter(File.Open(“data.dat”), Encoding.ASCII)) { string value = “Foo”; // Writes 4 bytes bw.Write(value); // Writes 3 bytes bw.Write(value.ToCharArray()); } 我不明白为什么当我只写3个ASCII字符时,字符串重载会写入4个字节。 有谁能解释一下?

C#字符串相等运算符返回false,但我很确定它应该是真的……什么?

我正在尝试为生成大量文本的代码编写unit testing。 我遇到了一个问题,其中“预期”和“实际”字符串似乎相等,但Assert.AreEqual抛出,并且相等运算符和Equals()返回false。 GetHashCode()的结果对于两个值也是不同的。 但是,将两个字符串放入文本文件并与DiffMerge比较告诉我它们是相同的。 另外,对两个值使用Encoding.ASCII.GetBytes()然后使用SequenceEquals来比较结果字节数组返回true。 这些值每个都是34KB,所以我暂时把它们放在这里。 有任何想法吗? 我完全难过了。

自定义菜单快捷键

我正在开发一个在其上面有一个菜单的应用程序。 我想对快捷键使用不同的方法(作为此代码段):这是用于快捷键: CTRL + N , 1 bool prefixSeen = false; protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (prefixSeen) { switch (keyData) { case (Keys.Control | Keys.D1): MessageBox.Show(“New file”); prefixSeen = false; break; } } switch (keyData) { case (Keys.Control | Keys.n): prefixSeen = true; break; } return base.ProcessCmdKey(ref msg, keyData); } […]

将控制台重定向到.NET程序中的字符串

如何将写入控制台的任何内容重定向到字符串中?

如何在打印之前预先测量字符串?

您好,我正在学习使用C#VS 2010 EE进行编程,我正在编写一个应用程序来填充预打印表单。 这个表格在不同的坐标中有几个地方。 纸上的三个盒子是多行5“W x 2”H盒子。 我已经为纸质表单上的每个位置创建了一个带有一个TextBox的窗体。 问题是当在这些多行文本框中输入信息时,我需要知道在纸上留下多少行以输入更多文本,以及何时停止输入,因为PrePrinted框中没有更多可用空间。 我做了很多搜索,但我发现的一切都是关于在屏幕上进行测量,这与纸张上的最终结果不符。 换句话说,我需要知道如何在输入TextBoxes时找出纸张上的字符串尺寸,并将其与PrePrinted表单上的可用空间进行比较,这样我就可以在它经过之前停止在纸上的框的底部边框。 纸上的第一个盒子的高度为5英寸,宽度为2英寸,从“ new RectangleF(60.0F, 200.0F, 560.0F, 200.0F) ”开始。 我明白这些数字是百分之一英寸。 所有这一切,考虑到我不能通过字符数限制TextBoxes,因为并非所有字符占据相同的空间,如H != I; M != l; 等等 预先感谢您的帮助。 今天是2011年9月5日,基于您的意见和建议,我已将代码更改为使用Graphics.MeasureString。 这是我现在使用Graphics.MeasureString和只有一个richTextBox的代码:从printDocument1_PrintPage事件中完美运行, 但我不知道如何使它从richTextBox1_TextChanged事件中运行 。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing;//Needed for the PrintDocument() using System.Linq; using System.Text; using System.Windows.Forms; namespace Printing { […]

如何检查字符串是否包含单词的所有字符

我希望检查字符串是否包含给定单词的所有字符,例如: var inputString = “this is just a simple text string”; 并说我有这个词: var word = “ts”; 现在它应该挑选出包含t和s的单词: 这只是字符串 这就是我正在做的事情: var names = Regex.Matches(inputString, @”\S+ts\S+”,RegexOptions.IgnoreCase); 但这并没有让我回复我喜欢的词。 如果我只喜欢像t这样的角色,那么它会给我所有包含t的单词。 如果我有st而不是ts ,它会让我回复这个词。 知道这是如何工作的吗?

快速字符串到byte 的转换

目前我使用此代码将字符串转换为字节数组: var tempByte = System.Text.Encoding.UTF8.GetBytes(tempText); 我经常在我的应用程序中调用此行,我真的想使用更快的行。 如何将字符串转换为字节数组比默认的GetBytes方法更快? 也许有一个不安全的代码?

为什么字符串不能比较引用?

我知道这是特殊情况,但为什么==如果它们的值等于字符串,则返回字符串,而不是当它们的引用等于时。 它是否与重载运算符有关?