格式化从LINQ返回的内容

时间:2017-01-22 02:06:34

标签: c# linq

所以,我目前有一个LINQ查询

BStops.JPPlatforms.Platform
  .Where(Stop => Stop.Name.ToLower().Contains(SearchBox.Text.ToLower()))
  .Select(Stop => new { Stop.Name, Stop.PlatformNo })
  .ToList();

Query results

返回我期望的数据,属性Platform包含一个停靠列表,其中包含我想要访问的属性的另一个类,例如Name,PlatformNo和PlatforTag,现在对我来说杀手是两件事,一个目前不那么重要,但如果你能提供帮助就会很棒!

所以我想格式化这个输出,所以当你搜索它并没有围绕它的所有这些乱码时,我宁愿它就像

Annex Rd near Railway (50643)

我已尝试将查询调整为

BStops.JPPlatforms.Platform
  .Where(Stop => Stop.Name.ToLower().ToString().Contains(SearchBox.Text.ToLower().ToString()))
  .Select(Stop => String.Format("{0} ({1})",new { Stop.Name, Stop.PlatformNo }))
  .ToList();

但是这会导致它崩溃回到一个毫无瑕疵的例外,对于我的生活,我似乎无法解决这个问题,就像第二部分一样。我也喜欢我的LINQ查询来搜索Name和PlatformNo属性我已经尝试过逻辑||但它崩溃回到了一个毫无瑕疵的例外,我对LINQ没有足够的了解,为什么,在这一点上任何帮助都会很棒:)。

2 个答案:

答案 0 :(得分:1)

将LINQ查询更改为此可以解决问题。

BStops.JPPlatforms.Platform.Where(Stop => Stop.Name.ToLower()
                                                   .Contains(SearchBox.Text.ToLower()))
                           .Select(Stop => new 
                                           { 
                                               StopAddress = $"{Stop.Name} {Stop.PlatformNo}" 
                                           })
                           .ToList();

答案 1 :(得分:0)

var app = require('express')(); var http = require('http').Server(app); var bodyParser = require('body-parser'); var request = require('request'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); http.listen(9999, function() { console.log('listening...'); }); app.post('/bot',function(req,res){ var apiurl = 'https://newsapi.org/v1/articles?source=techcrunch&apiKey=72cc6a313e2b4fb3af09e4593ee06fbc' request(apiurl, function(error,response,body){ res.send(body) }) //res.end() }) 子句不具备性能。 Where应该在Linq之外完成。另外Text.ToLower会返回一个字符串,因此无需调用ToLower

ToString不应该创建新对象。

Select