我真的被困在这里,并会很感激帮助。我创建了服务的请求数据合同和响应数据合同。请求DTO包含Cardnum,Id和Noteline1 ---- noteline18。响应DTO包含noteline1 - noteline18。如何根据c中的长度将字符串拆分为数组#
我将字符串长度为100的字符串传递给请求数据成员noteLine1(数据长度为78个字符)。现在我想确保只有78个字符应该填充到noteline1数据成员中,其余的应该放入请求DTO的另一个空的noteline数据成员中。我用下面的代码,它为我工作得很好:
string requestNoteReason = request.noteLine1;
if (response != null)
{
foreach (PropertyInfo reqPropertyInfo in requestPropertyInfo)
{
if (reqPropertyInfo.Name.Contains("noteLine"))
{
if (reqPropertyInfo.Name.ToLower() == ("noteline" + i))
{
if (requestNoteReason.Length < 78)
{
reqPropertyInfo.SetValue(request, requestNoteReason, null);
break;
}
else
{
reqPropertyInfo.SetValue(request, requestNoteReason.Substring(0, 78), null);
requestNoteReason = requestNoteReason.Substring(78, requestNoteReason.Length - 78);
i++;
continue;
}
}
}
}
goto Finish;
}
现在我想的是包含超过78字符长度的字符串noteline1应该分裂,并得到填补在未来空noteline。如果字符串超过200个字符长度,那么它应该拆分字符串并将其填充到下一个连续的空白noteline中。例如,如果字符串需要3个空白noteline的空间,那么它应该只填充下一个连续可用空白noteline(即noteline2,noteline3,noteline4)中剩余的字符串,并且不应该用已经存在的字符串填充noteline之前填充。
请帮
有一个在代码中的箭头反模式和有goto语句,它不应该被用来 – Giedrius 2012-07-26 06:18:48
goto语句有别的意思。我没有在这里写过这些代码。我只写了需要实现的代码 – 2012-07-26 06:23:44
我只是好奇:为什么你使用noteline1..noteline18属性而不是使用字符串数组? – 2012-07-26 08:33:39