根据字符串列表过滤列表

时间:2017-03-29 12:07:18

标签: c# .net linq logic

我的逻辑需要一些帮助。

我正在尝试过滤从多个外部API调用中获得的对象列表。我得到的输入可以是对象的任何字段。

我的代码是这样的:

public ResultData GetData(string request){
  string[] splitRequest = request.Split(' ');

  ResultData resultData = new ResultData();

  foreach(string split in splitRequest){
    //send requests and fill resultData
    //external/api/user/firstname/{input}
    //external/api/user/lastname/{input}
    //external/api/user/username/{input}
    var exampleData = new {
      UserName= "ABC",
      FirstName= "FOO",
      LastName= "BAR"
    }
    resultData.Add(exampleData);
  }
  //There might be doubles, remove those
  resultData = resultData.Distinct();
  //TODO: filter resultData so it's the closest match(es)
}

现在我想要的是如果请求是例如“FOO BAR”然后它返回具有名字FOO和姓氏BAR的用户,但是如果请求是“BAR FOO”,它仍然应该返回该用户。同一个请求也可能包含用户名,因此也必须考虑到这一点。

有没有一种简单的方法可以用linq做到这一点?或者我真的要在这里自己写一个完整的过滤功能?如果是这样,你能指出我在哪里寻找过滤器的正确方向吗?

提前致谢!

修改

好吧我刚才发现我正在为每个过滤器发送一个单独的请求,所以它就像

external/api/user/firstname/{input}
external/api/user/lastname/{input}
external/api/user/username/{input}

这意味着我可以在每个请求之后检查哪个人正在给我数据,然后根据它来划分它们。如果我找到完整的解决方案,我会在此处将其作为答案发布。

更新原始问题以更清楚地显示所有内容

0 个答案:

没有答案