繁体   English   中英

为什么我在C#中对date.ToString()和str.Length的调用不能一起工作?

[英]Why won't my calls to date.ToString() and str.Length in C# work together?

我意识到这可能将是一个新问题,但是无论我尝试还是查找,我似乎都找不到找不到为什么无法像我想要的json字符串那样修剪某些字符串的答案。

该页面通过AJAX请求到达,查询数据库,并尝试编译一个json字符串,该字符串最终将被解析成一个由对象数组组成的json对象。 听起来很简单...

我现在所拥有的:

foreach (var row in db.Query(selectQueryString))
{
    jsonString += "{";
    jsonString += "\"title\":\"" + Json.Encode(row.title) + "\",";
    jsonString += "\"dateNumber\":\"" + Json.Encode(row.eventDate.ToString().Substring(0, row.eventDate.ToString().IndexOf("/"))) + "\",";
    jsonString += "\"dateMonth\":\"" + Json.Encode(row.eventDate.ToString().Substring(row.eventDate.ToString().IndexOf("/"), row.eventDate.ToString().LastIndexOf("/"))) + "\",";
    jsonString += "\"dateYear\":\"" + Json.Encode(row.eventDate.ToString().Substring(row.eventDate.ToString().LastIndexOf("/"), row.eventDate.ToString().Length)) + "\",";
    jsonString += "\"summary\":\"" + Json.Encode(row.summary) + "\",";
    jsonString += "},";
}

异常详细信息:System.ArgumentOutOfRangeException:索引和长度必须引用字符串中的位置。 包含“ dateYear”的行中的错误

我想要做的就是到此为止以一个长长的json字符串结尾,但是我似乎无法停止获取错误。

您在子字符串中传递的第二个参数应该是您想要返回的字符数,但是您正在传入您想要子字符串的字符串的总长度。

编辑:如果是一年,您试图找回第二个参数应该是4我认为:

Json.Encode(row.eventDate.ToString().Substring(row.eventDate.ToString().LastIndexOf("/"), 4))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM