日期格式的字符串比较不起作用?

时间:2012-07-25 23:54:41

标签: c# wpf wcf linq web-services

嗨,由于某种原因,我不能在约会上进行字符串比较?举个例子:

public List<HireDate> GetHireDate(string anything)
{
List<HireDate> hiredate = hiredates.Where(n =>
string.Equals(n.HireFromDate, anything, StringComparison.CurrentCultureIgnoreCase)
).ToList();
return hiredate;
}

它根本不工作?如果我输入一个文本框13/07/2012,这就是它存储的方式,它返回的是404找不到的???

输出在通用列表/获取请求中看起来像这样:

<ArrayOfHireDate>
<HireDate>
<HireFromDate>13/07/2012</HireFromDate>
<HireToDate>28/07/2012</HireToDate>
<NumberOfDaysHired>15</NumberOfDaysHired>
</HireDate>
</ArrayOfHireDate>

还有另一种方法可以找到带正斜杠的字符串吗?例如,使用/在任何网络字符串比较器中都不起作用,它总会抛出404找不到的东西?

1 个答案:

答案 0 :(得分:1)

两件事:

1)要将字符串放在另一个字符串中,最常用的方法是使用String.Format。该方法采用格式字符串(例如"Date: {0} Time: {1}")和一堆参数。字符串中每次出现的{0}都被第一个参数替换,{1}被第二个等等替换。还有其他选项来格式化字符串中的参数,有关详细信息,请参阅{{3} }。

2)如果您有一个URL并且在应用程序中获得了404,请首先验证URL的语法是否正确。直接在浏览器中手动尝试在程序中创建的URL,如果不起作用,请找出实际用于提供参数的语法。例如,日期必须格式化为13-07-2012而不是13/07/2012才能生效。如果是这样,您可以通过选择适当的the MSDN page on String.Format来解决此问题。

对于任何DateTime date对象,要使用您想要的任何CultureInfo格式化它的日期较短,请使用ToString的重载并指定d作为格式。例如,使用不变文化:

var str = date.ToString("d", CultureInfo.InvariantCulture);

可以找到其他格式字符串CultureInfo