C# 基于字符串列表筛选列表
我需要一些逻辑方面的帮助 我正在尝试筛选从多个外部API调用中获得的对象列表。我得到的输入可以是对象的任何字段 我的代码是这样的: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
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”情况下将发生的相应字段