【问题标题】:Web service WHERE / ORDER BY (?) [closed]网络服务 WHERE / ORDER BY (?) [关闭]
【发布时间】:2014-04-21 20:31:26
【问题描述】:

我有一个返回所有客户端列表的网络服务。

我可以通过调用get all data这样的方法将列表放入gridview。

    test.RH_WebServiceService ligar = new test.RH_WebService();
    test.baseList[] data = ligar.getAllData();

问题是我想按名称过滤它(例如)我一直在网上阅读,人们对我说我可以这样做:

test.baseList[] data = ligar.getAllData().Where(condition);

但是我无法让它工作。大家有什么想法吗?

【问题讨论】:

  • 我们能看到实际的代码吗? condition 是什么?
  • 它是.Where() 而不是.WHERE()(C# 区分大小写),您需要有using System.Linq。除此之外,“无法让它工作”甚至不足以开始诊断问题。
  • 这是一些人在我谈到我需要的东西之后给我的,我不知道他们所说的条件是什么意思,我猜它类似于 test.baseList[] data = ligar.getAllData().WHERE (data.name="约翰");像这样的东西。但我试过了,我不能让它工作
  • 感谢克雷格,我写得太快了,我什至没有注意到我搞砸了。感谢您的关注
  • 您仍然没有像@CraigW 一样提供错误的描述。建议。请这样做。

标签: c# asp.net web-services where


【解决方案1】:

假设您使用的是 Linq,那么您可以这样做:

test.baseList[] data = ligar.getAllData().Where(d => d.Name == "John");

d 是给对象的随机字母。名称是我假设您的财产被调用的名称。尽管我建议在您的服务中创建一个方法,将名称传入并取回过滤后的数据。这样你只返回你需要的数据,这将提高性能。像这样的:

test.baseList[] data = ligar.getDataByName("John");

【讨论】:

  • 谢谢你明天在学校试试。是的,我考虑过,但网络服务是给我的,我不得不过滤姓名、年龄等,所以他们告诉我这样做
【解决方案2】:

也许这会有所帮助:

test.baseList[] data = ligar.getAllData().Where(f=> f.field == "value").ToArray();

【讨论】:

    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多