Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于字符串列表筛选列表_C#_.net_Linq_Logic - Fatal编程技术网

C# 基于字符串列表筛选列表

C# 基于字符串列表筛选列表,c#,.net,linq,logic,C#,.net,Linq,Logic,我需要一些逻辑方面的帮助 我正在尝试筛选从多个外部API调用中获得的对象列表。我得到的输入可以是对象的任何字段 我的代码是这样的: public ResultData GetData(string request){ string[] splitRequest = request.Split(' '); ResultData resultData = new ResultData(); foreach(string split in splitRequest){ //se

我需要一些逻辑方面的帮助

我正在尝试筛选从多个外部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}
这意味着我可以在每次请求后检查哪些人给了我数据,然后根据这些数据对其进行截面分析。如果我找到了一个完整的解决方案,我会把它作为一个答案贴在这里


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

您是否将
exampleData
添加到
resultData
?用户名是什么语法:“ABC”?那是不可编译的。除此之外,你想要什么还不清楚。您想查找忽略顺序的重复项,但至少有两个必须与给定的first-/lastname匹配
GetData
还需要为您想要查找的用户提供两个额外的参数。将其智能化有点可怕。您应该首先确定请求是否返回
FOO-BAR
BAR-FOO
。如果您知道它返回的内容,您可以填写“FOO TEST”情况下将发生的相应字段