我的项目中有以下字符串:
((1,01/31/2015)(1,Filepath)(1,name)(1,code)(1,String)(1, ))
我想将此字符串分成几个部分,在这些部分中我可以获取捕获括号内的信息(例如1,Filepathor (1,Filepath),但整个字符串也位于捕获括号中,如您所见。然后我尝试将结果放入数组中string[] array = Regex.Split(originalString,SomeRegexHere)
现在我想知道最好的方法是什么,只需删除字符串的第一个和最后一个字符,这样我就没有捕获整个字符串的括号,或者是否有某种方法可以在此使用正则表达式来获取我想要的结果是?
以下情况:有一个字符串格式为"2012-02-25 07:53:04"
但最后,我宁愿以这种格式结束"25-02-2012 07:53:04"
我想我有两个选择.1将重新格式化字符串并将其全部移动,但我不认为这是一种干净的方式.
我想到的另一种方法是将源字符串保存为日期参数,然后将日期参数写回特定日期格式的字符串.但这甚至可能吗?
(使用WPF)
在我写的一个小应用程序中,我使用了一些倒计时器.为此,我使用了DispatcherTimer.
counter01 = new DispatcherTimer();
counter01.Tick += new EventHandler(counter01_Tick);
counter01.Interval = new TimeSpan(0, 0, 1);
Run Code Online (Sandbox Code Playgroud)
但是现在当我测试/使用该程序时,我注意到当它被设置为(例如)60分钟倒计时时,与现实世界时间相比,它会缩短几分钟.
可能是因为某些原因,DispatcherTimer如果我像上面那样使用它,并不总是1秒钟?
(使用WPF)是否可以使用a的数量TextBox来选择参数名称?例如,用户可以将0,1,2或3作为文本放在TextBox:
private void button1_Click(object sender, RoutedEventArgs e)
{
int test = int.Parse(textBox1.Text);
string nr1 = "this string is 1";
string nr2 = "this string is 2";
string nr3 = "this string is 3";
MessageBox.Show();
}
Run Code Online (Sandbox Code Playgroud)
现在MessageBox.Show();想要放东西,因为nr(test)
这样的事情可能吗?
我试图从字符串中获取文件名,但是在尝试获取文件名时,文件可能不存在(还).所以据我所知,我不能使用Path.GetFileName方法,或者我可以以某种方式仍然使用此方法,而文件实际上不存在?
字符串示例: C:\cSharp\test\001.txt
文件名的长度可以变化.尝试获取文件名的最佳方法是什么?通过正则表达式?也许其他一些方式?
我想要做的是将*.Txt文件的内容放入文本框中,如果可能的话,保留格式.
现在,我在这里找到了这个网站:http: //weblogs.asp.net/lduveau/archive/2008/03/02/load-a-txt-file-in-a-textbox.aspx那描述了一个选项2只需添加一个.txt资源文件,并将其读取到文本框中,如下所示:
txtDisclaimer.Text = Resources.Common.disclaimer_en;
但是在我的WPF应用程序中,该Resources.Common部分不存在,因此无法工作.任何人都知道如何在WPF中完成它?或者可以告诉我将文本文件内容添加到文本框的更好方法?
我有一个巨大的 xml 文件,我需要在其中查找并替换某些部分。它总共发生了大约 2100 次,所以我希望我可以通过使用 Notepad++ 中的高级工具来解决这个问题。它不一定是记事本++,所以如果有其他解决方案,我也会提供帮助。
查找结果如下所示:
<condition test="contains" flags="90">
<category>
<name internal="Type">Type</name>
</category>
<property>
<name internal="parameter">Code</name>
</property>
<value>
<data type="wstring">21.12</data>
</value>
</condition>
Run Code Online (Sandbox Code Playgroud)
一切都是一致的,除了数据部分中的数字,21.12
这个数字在所有 2100 个案例中都是不同的。
所以我想查找和替换,但将该数字设置为查找和替换中使用的某种通配符。我必须找到的部分可以与正则表达式一起工作(在记事本++中使用正则表达式替换)。但我无法粘贴正则表达式的部分。
简而言之,如果我的代码如下所示:
<code>6</code>
<code>7</code>
<code>8</code>
Run Code Online (Sandbox Code Playgroud)
我想查找/替换使其看起来像这样:
<code>6</code>
<extraCode>6</extraCode>
<code>7</code>
<extraCode>7</extraCode>
<code>8</code>
<extraCode>8</extraCode>
Run Code Online (Sandbox Code Playgroud)
这可能吗?我是否需要一些其他软件,或者制作一些 C# 脚本来执行此操作?
我有一个按钮:
private void Button_Click(object sender, RoutedEventArgs e)
{
string s = "x12y04";
//make new instance for MyMath class
MyMath dRet01 = new MyMath();
//use the doubleArrayXY (in MyMath class) to get doubble array back
double[] retD = dRet01.doubleArrayXY(s);
//use the calcResultFromDoubleArray (in MyMath class) to get result
MyMath dRet02 = new MyMath();
double result = dRet02.calcResultFromDoubleArray(retD[0], retD[1]);
//DEBUG!
/*
string TEST1 = Convert.ToString(returnedDouble[0]);
MessageBox.Show(TEST1);
string TEST2 = Convert.ToString(returnedDouble[1]);
MessageBox.Show(TEST2);
string TEST3 = Convert.ToString(result);
MessageBox.Show(TEST3);
*/
}
Run Code Online (Sandbox Code Playgroud)
"MyMath"类是:
public double[] doubleArrayXY(string …Run Code Online (Sandbox Code Playgroud) 可能重复:
如何将新数组插入到我的锯齿状数组中
我有一个问题,我不知道如何在数组长度中创建一个字符串数组变量.
我现在有以下代码:
string[] p = new string[10];
int num = 0;
foreach (Product products in GetAllProducts())
{
//do something
p[num]= "some variable result"
num++
}
Run Code Online (Sandbox Code Playgroud)
问题是,我不知道有多少"p"我会得到,虽然我知道它至少会小于10.但如果我把它放在0,我会在我启动时得到一个错误,因为它没有不知道"p [num]"所以我正在寻找一些让"p"具有可变长度的方法.
有人可以帮我一点吗?感谢名单
============解决==========
List<string> p = new List<string>();
int num = 0;
foreach (Product products in GetAllProducts())
{
string s= null;
//do something ( create s out of multiple parts += s etc.)
p.add(s)
num++
}
Run Code Online (Sandbox Code Playgroud)
thanx到解决方案海报
我试着在这里使用这篇文章:在WPF/C#中使用全局键盘钩子(WH_KEYBOARD_LL) 我已经成功地使用了它.
但有一些东西我不能让我的手指落后.它可以检测到按下的每一个键,但我想让我的应用程序对一个键组合做一些事情.
void KListener_KeyDown(object sender, RawKeyEventArgs args)
{
Console.WriteLine(args.Key.ToString());
if (args.Key == Key.LeftCtrl && args.Key == Key.C)
{
MessageBox.Show(args.Key.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
显而易见,这不起作用,因为虚空仅适用于每一个键(如果我理解正确的话)
所以我真的需要一些帮助来使它适用于一个组合键,例如Ctrl + C可能会有人在这里推动我朝着正确的方向前进吗?
在为Autocad(绘图软件)编写插件时,我创建了一个3d点构建,其中包含3个双值,表示3d中某个点的X,Y和Z值.
Point3d insertPoint = new Point3d((insPointX = StrToDouble(tbInsPointX.Text)),
insPointY = StrToDouble(tbInsPointY.Text),
insPointZ = StrToDouble(tbInsPointZ.Text));
Run Code Online (Sandbox Code Playgroud)
而StrToDouble看起来像这样:
public double StrToDouble(string str)
{
double x = 0;
try
{
x = double.Parse(str.Replace(",", "."));
}
catch (System.Exception ex) { MessageBox.Show(ex.Message); }
return x;
}
Run Code Online (Sandbox Code Playgroud)
但是现在它实际上总是返回一个double,因为当解析失败时它会将double返回为0.我现在想知道报告回3dpoint创建的正确方法是什么是错误而且它不应该再继续.我可以考虑使用bool或其他东西,但我认为这可能不是一个很好的干净方式.由于我只是一个业余爱好程序员,我不知道这是正确的方法.当double = 0不是一个选项时让它停止,因为它实际上可以是一个实际值.
我要保存多个在列表中包含字符串的元组:
List<Tuple<string, string, string>> ExcelRawImport
我现在想做的是在列表中找到元组,其中Tuple.Item1具有特定值。
我该怎么办?