LINQ选择字符串结果为char

时间:2016-10-07 08:22:44

标签: linq select

我有一个对象数组,我正在使用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,但我确信我之前没有问题就这样做了。有谁知道如何解决这个问题?

感谢。

1 个答案:

答案 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);
...