我正在尝试在C#中创建一个例程,用于对添加到多行文本框的列表进行排序.完成后,可以选择删除所有空行.有人能告诉我怎么做这个吗?这是我到目前为止所做的,但是当我选择框并点击排序时它根本不起作用:
private void button1_Click(object sender, EventArgs e)
{
char[] delimiterChars = { ',',' ',':','|','\n' };
List<string> sortBox1 = new List<string>(textBox2.Text.Split(delimiterChars));
if (checkBox3.Checked) //REMOVE BLANK LINES FROM LIST
{
sortBox1.RemoveAll(item => item == "\r\n");
}
textBox3.Text = string.Join("\r\n", sortBox1);
}
Run Code Online (Sandbox Code Playgroud) 我试图将我的.NET应用程序设置文件保存到用户的%MyDocument%\ MyApplication文件夹,但我不知道如何检查现有的文件夹\文件,并在保存时创建或附加文件夹\ file.我不想打开saveFileDialog,因为我需要文件在所有用户计算机上的相同位置.这是我到目前为止所做的,但它不起作用.任何帮助,将不胜感激:
var saveSettings = settingsList.text; //assign settings to a variable
saveSettings = Regex.Replace(saveSettings, @"\s+", "").Trim() + Environment.NewLine; //remove any extra spaces and add a carriage return so that each setting is on a new line
var fileName = string.Format("{0}\\{1}", Environment.SpecialFolder.MyDocuments + "\\MyApp\\", "settings.dat"); //generate path to settings.dat
File.AppendAllText(fileName, saveSettings); //save settings.dat
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个可选的自定义前缀和后缀,我想添加到我的字符串列表中的每个项目.我已经尝试了以下所有内容,但没有一个正在运行.有人能指出我正确的方向吗?
List<string> myList = new List<string>{ "dog", "cat", "pig", "bird" };
string prefix = "my ";
string suffix = " sucks!";
StringBuilder sb = new StringBuilder();
sb.Append(suffix);
sb.Insert(0, prefix);
MyList = sb.ToString(); //This gives me red squigglies under sb.ToString();
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
myList = myList.Join(x => prefix + x + suffix).ToList(); //Red squigglies
Run Code Online (Sandbox Code Playgroud)
和:
sortBox1.Join(prefix + sortBox1 + suffix).ToList(); //Red squigglies
Run Code Online (Sandbox Code Playgroud)
我在哪里错了?
我正在尝试使用以下代码连接到我的远程MySQL服务器.你能告诉我我做错了什么,因为用变量替换数据库连接信息似乎没有用.
using MySql.Data.MySqlClient;
string db_Server = "10.0.0.0";
string db_Name = "myDatabase";
string db_User = "myUser";
string db_Pass = "myPassword";
// Connection String
MySqlConnection myConnection = new MySqlConnection("server = {0}; database = {1}; uid = {2}; pwd = {3}", db_server, db_Name, db_User, db_Pass);
Run Code Online (Sandbox Code Playgroud)
作为PHP开发人员,我更喜欢使用上面的代码而不是下面的故意转换:
MySqlConnection myConnection = new MySqlConnection("server=10.0.0.0; database=myDatabase; uid=myUser; pwd=myPassword");
Run Code Online (Sandbox Code Playgroud)
但正如你在这张图片中看到的那样,我得到了很多红色的曲线:http: //screencast.com/t/xlwoG9by
我试图使用以下代码将.txt文件读入多行文本框.我已经让文件对话框按钮完美地工作,但我不知道如何将实际文本从文件框中获取到文本框中.这是我的代码.你能帮我吗?
private void button_LoadSource_Click(object sender, EventArgs e)
{
Stream myStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
using (myStream)
{
// Insert code to read the stream here.
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我试图根据每个字符串中的单词数过滤字符串列表.我假设您将修剪字符串末尾的任何空格,然后计算字符串中剩余的空格数,以便WordCount = NumberOfSpaces + 1.这是最有效的方法吗?我知道对于基于字符数的过滤,以下工作正常...只是无法弄清楚如何使用C#/ LINQ简洁地编写它.
if (checkBox_MinMaxChars.Checked)
{
int minChar = int.Parse(numeric_MinChars.Text);
int maxChar = int.Parse(numeric_MaxChars.Text);
myList = myList.Where(x =>
x.Length >= minChar &&
x.Length <= maxChar).ToList();
}
Run Code Online (Sandbox Code Playgroud)
任何计算单词的想法?
更新:这就像一个魅力...谢谢马修:
int minWords = int.Parse(numeric_MinWords.Text);
int maxWords = int.Parse(numeric_MaxWords.Text);
sortBox1 = sortBox1.Where(x => x.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Count() >= minWords &&
x.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Count() <= maxWords).ToList();
Run Code Online (Sandbox Code Playgroud) 我使用以下代码检查空文本框,如果它为null,则跳过副本到剪贴板并转到其余代码.
我不明白为什么我得到一个"值不能为NULL"的例外.它不应该看到null并继续前进而不复制到剪贴板?
private void button_Click(object sender, EventArgs e)
{
if (textBox_Results.Text != null) Clipboard.SetText(textBox_Results.Text);
//rest of the code goes here;
}
Run Code Online (Sandbox Code Playgroud) 我试图将字符串的最后一个字符与已知值列表进行比较,如果任何已知值与结束字符匹配,则设置一个标志.我已经想出了如何与一个角色进行比较,但我似乎无法弄清楚如何与列表进行比较.有人可以帮忙吗?到目前为止,这是我的代码:
StringBuilder myGrade = new StringBuilder();
// then I pull some data, calculate some stuff, give a grade, build the string, etc. The resulting text can vary, but the grade letter will always be last.
var goodGrades = new List<string> { "A", "B", "C" };
string endStr = myGrade.ToString();
endStr = endStr.Substring(Math.Max(0, endStr.Length - 1));
if (endStr == "A")
//do some stuff for passing grades
else
//do some other stuff for failing grades
Run Code Online (Sandbox Code Playgroud)
同样,这适用于单个char ...但是我如何检查goodGrades列表中的每个项目?有正则表达式的可能吗?在此先感谢您的帮助.
有没有办法使用IEnumerable For Each-Loop 来解析 a 中的多个定义SortedDictionary?我想基本上将它用作我猜的简单数据库结构。例如,假设我的字典用于旋转一篇文章,如下所示。对于句子中的每个单词(我的字符串),我将使用同义词(我的定义)创建该字符串的新版本。这甚至是最好的选择吗?这是我到目前为止:
string testSentence = "Take it or beat it.";
List<string> allSynonyms = SynonymUtility.AlternativesOf(testSentence).ToList();
variations.AddRange(allSynonyms);
public class SynonymUtility
{
private static readonly SortedDictionary<char, string> synonymList = new SortedDictionary<char, string>
{
{'but', "however"},
{'take', "abduct, abstract, accroach"},
{'beat', "hit, lash, punch, shake"},
{'end', " butt, confine, cusp"};
}
public static IEnumerable<string> AlternativesOf(string arg)
{
arg = arg.ToLower();
string[] words = arg.Split(" "));
//END HERE I AM STUCK...
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在寻求解决方案,但我无法弄清楚如何将每个拆分的单词替换为字典中的每个同义词。每次尝试只会替换一个项目......所以最后会有9个句子串的排列。
无论如何,任何帮助将不胜感激。
我试图将SaveFileDialog添加到Windows应用程序中,在其中我从多行文本框的内容中保存了一个简单的文本文件。该程序似乎可以正常工作,直到保存对话框,并且我没有收到任何错误,但是一旦单击“保存”按钮,应用程序就会挂起。唯一的解决方法是单击“停止调试”按钮。这是我尝试过的代码段,但是都创建了相同的挂起:
private void button_SaveToFile_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveFileDialog1.FileName, textBox_ListDestination.Text);
}
}
Run Code Online (Sandbox Code Playgroud)
和
private void button_SaveToFile_Click(object sender, EventArgs e)
{
Stream myStream;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = saveFileDialog1.OpenFile()) != null)
{
File.WriteAllText(saveFileDialog1.FileName, textBox_ListDestination.Text);
myStream.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud) c# ×10
list ×3
append ×2
appsettings ×1
compare ×1
dictionary ×1
file ×1
ienumerable ×1
mysql ×1
null ×1
permutation ×1
regex ×1
string ×1
text-files ×1
textbox ×1
word-count ×1