我正在使用WPF项目MVVM.
使用验证错误的最佳做法是IDataErrorInfo什么?在我的模型或ViewModel中?
什么是用于实施验证的最佳模式?
PS我正在使用.NET3.5.
A具有以下输入字符串:
string input =
"Ta005000000000000000000Tb001700000000000000000Sa005000000000000000000" +
"Sb002500000000000000000F 00000000000000000I 00000000000000000N" +
" 00000000000000000FS 00000000000000000IS 00000000000000000NS" +
" 00000000000000000";
Run Code Online (Sandbox Code Playgroud)
我需要将这个字符串分成几部分,但内容变化很大.
必须将此字符串放入如下列表中:
[0] "Ta005000000000000000000"
[1] "Tb001700000000000000000"
[2] "Sa005000000000000000000"
[3] "Sb002500000000000000000"
[4] "00000000000000000I"
[5] "00000000000000000N"
[6] "0000000000000000FS"
[7] "0000000000000000IS"
[8] "0000000000000000NS"
[9] "000000000000000000"
Run Code Online (Sandbox Code Playgroud)
在这种情况下我唯一知道的是字符串的最大长度是23.因此,在这个例子中,我需要分离字符串返回的fisrt部分的'T'或'S'.或者,如果没有出现这些字符,则用空格分隔(它发生在我的字符串返回的最后一部分).我这样做了:
var linq = test.Split(new[] { 'T', 'S', ' ', '{', '}' }, StringSplitOptions.RemoveEmptyEntries).ToList();
Run Code Online (Sandbox Code Playgroud)
我的"test"是一个包含返回字符的StrintBuilder.通过这样做,我可以将我的列表分开,但在这种情况下,我丢失了一个非常重要的信息,即"T"和"S".
嗯,不知道它是否清楚,但它似乎是如此简单,给我一个巨大的头痛.
Obs:其他问题是,例如:"0000000000000000FS",在这部分字符串中我需要将"FS"保持在一起.
感谢您的关注,
在我的系统的一部分中,我遇到这种情况:我将收到一个表示日期的字符串和另一个表示时间的字符串.我需要在DateTime中提供这些信息.所以,做了一个:
string date = "17012012";
string hour = "103445";
date = string.Format("{0}/{1}/{2}", date.Substring(0, 2),
date.Substring(2, 2), date.Substring(4, 4));
hour = string.Format("{0}:{1}:{2}", hour.Substring(0, 2),
hour.Substring(2, 2), hour.Substring(4, 2));
DateTime example = new DateTime();
example = DateTime.Parse(string.Format("{0} {1}", date, hour));
Run Code Online (Sandbox Code Playgroud)
好的,但这是一个好模式吗?有没有"更美丽"的方式来做到这一点?
有时,在我的应用程序中,我想创建一个已存在的文件的副本,但我不想测试该文件是否已存在,我只想创建该文件的副本,如Windows 7 .
例如:文件tips.txt.当我的应用程序复制它时,将创建另一个名为tips - copy.txt的文件.之后,如有必要,提供"副本副本" 提示 - copy - copy.txt.
在这种情况下我能做些什么吗?
Obs:在这个应用程序中,我使用的是.NET 3.5和WPF.
Obs2:我提出这个问题是因为我认为在.NET中已存在类似的东西.
我有以下返回的打印机:
{Ta005000000000000000000F 00000000000000000I 00000000000000000N 00000000000000000FS 00000000000000000IS 00000000000000000NS 00000000000000000}
Run Code Online (Sandbox Code Playgroud)
好的,我需要在列表中保存部分退货.
例如
[0] "Ta005000000000000000000F"
[1] "00000000000000000I"
[2] "00000000000000000N"
...
Run Code Online (Sandbox Code Playgroud)
问题是字符数有所不同.一个试图让它进入'空间',采取子串,但失败了...
有什么建议吗?