Linq在列表

时间:2017-08-21 11:36:52

标签: c# list linq

我正在获取一个List类型的对象列表 我希望记录形成EventType = "Changed" EventDesc = "Changed"UserName = "zMobile"的列表但是当我尝试使用我的代码得到结果时,我只使用相同的数据多次获得一行

orderEvent = new List<ECGetOrderResponse.OrderEvent>();
EventType = "Changed";
EventDesc = "Changed";
UserName = "zMobile";
orderEvent = result.Body.Order.OrderEvents.OrderEvent;
query = orderEvent
   .Where(o => o.EventType == EventType)
   .Where(o => o.EventDesc == EventDesc)
   .Where(o=>o.UserName==UserName)
   .ToList();

我想在linq代码中做的更多事情是: orderEvent有一个属性是Notes。我想只过滤那个Notes Last 1值为&#39; A&#39;

的记录

你能描述一下我的结果的Linq语句的正确格式吗?

1 个答案:

答案 0 :(得分:3)

  

当我尝试用我的代码获得结果时,我只得到一行   多次使用相同的数据

使用此代码,无法始终获得相同的行,因此result.Body.Order.OrderEvents.OrderEvent之前已经包含这些行。但是你还没有表明它是什么,所以我们无法帮助修复它。

  

我希望orderEvent具有Notes的属性。在笔记   字段最后1个字符是&#39; A&#39;

嗯,这很简单:

query = orderEvent
   .Where(o => o.EventType == EventType)
   .Where(o => o.EventDesc == EventDesc)
   .Where(o => o.UserName  == UserName)
   .Where(o => o.Notes.EndsWith("A", StringComparison.CurrentCultureIgnoreCase)) 
   .ToList();

如果您不想允许StringComparison,请相应地更改a