我有一个客户列表,它内部包含电话号码列表,我需要使用linq过滤与另一个电话列表中的客户电话号码匹配的客户列表。
这是我的代码
我的客户对象是
public class Client
{
public int id;
public string firstname;
public string lastname;
public List<phone> phones;
//etc.
}
public class phone
{
public int id;
public string phoneno;
}
var searchByPhone = new List<string,string>();
searchByPhone.Add("12324344", "message one");
searchByPhone.Add("45646565", "message two");
searchByPhone.Add("56868675", "message three");
//first one is phone number and second is the text message.
我需要的是
我需要通过客户电话列表中的searchByPhone phonenumber列出客户端,并将结果集合并到下面提到的新Clientobject。有什么帮助吗?
public class ClientObject
{
public int id;
public string firstname;
public string lastname;
public string phonenumber;
public string message;
}
提前致谢。
答案 0 :(得分:1)
这样的事情可以解决问题:
public class Hello{
public static void main(String args[]){
System.out.println("Hello World");
}
}
注意:您需要公开客户端,客户端对象和电话类的成员,或者最好创建公共属性以获取/设置其值。
这将为您提供ClientObject对象的列表,其中包含来自Client对象的id,名字和姓氏,以及来自searchByPhone元组的appropraite数字和消息。 我认为这就是你所追求的。如果没有,请澄清您的需求,我可以调整答案
答案 1 :(得分:0)
尝试类似:
var data = (from dt in searchByPhone
let cl = clientList.Where(z => z.phones.Any(y => y.phoneno.Equals(dt.Item1)))
select cl.Select(x => new ClientObject
{
firstname = x.firstname,
lastname = x.lastname,
id = x.id,
phonenumber = dt.Item1,
message = dt.Item2
})).Aggregate((a, b) =>
{
a.ToList().AddRange(b);
return a;
});