我有一个对象数组,我正在使用LINQ来构建web服务的对象,我遇到的问题是某些数据需要在其中一个选定值下截断select参数使用char而不是字符串:
WebService.ORDER_WRITE_REQUEST WebServiceObject = new WebService.ORDER_WRITE_REQUEST();
WebServiceObject.ITEMS = array.Item
.Select(x => new WebService.ITEMS
{
Value1 = x.Units.UnitName.Where(x => x != null).Select(x => x.Length > 5 ? x.Substring(0, 5) : w);
}
'UnitName'值是一个String,但参数x最终将它转换为char,所以我实际上无法在linq查询中使用substring方法。
我看到选择期待它是一个char,但我确信我之前没有问题就这样做了。有谁知道如何解决这个问题?
感谢。
答案 0 :(得分:1)
UnitName
是一个实现IEnumerable<char>
的字符串,您可以枚举所有字符。
你想要这个:
...
Value1 = x.Units
.Where(x => x.UnitName != null)
.Select(x => x.UnitName.Length > 5 ? x.UnitName.Substring(0, 5) : w);
...