具有以下類:展望電子郵件類使用LINQ
[Serializable]
public class EmailClass
{
public string from;
public List<string> To;
public List<string> CC;
public string DisplayTo;
public string Subject { get; set; }
public int attachments;
public List<string> attachmentsName;
public string DateTimeReceived;
public string DateTimeSent;
public string FinalFilename;
public string DatetimeCreated;
public string ExchangeUniqueId;
public string ChankeyID;
public string FinalFileName {get;set;}
public bool Encrypted;
public string Descripcion { get; set; }
}
一旦對象被反序列化,我尋找到所有的郵件地址的容器。 林創建搜索篩選器正在調查from
地址,列表To
收集, 和列表CC
收集。
所以最後我的LINQ查詢是這樣的:
listaCorreos.DataSource =
listado.Where(
l => l.from.ToUpper().Contains(textBox1.Text.ToUpper()) ||
l.To.Any((c) => c.ToUpper().Contains(textBox1.Text.ToUpper()) ||
l.CC.Any((s) => s.ToUpper().Contains(textBox1.Text.ToUpper())
)))
.ToList();
是做任何其他方式?也許另一個表現最好的?什麼是 搜索一個字符串變量和幾個List變量的最佳方法。
使用含有比較是一個糟糕的主意,認爲這兩封郵件:'ABC @ mail.com'和'AABC @ mail.com' < - 包含將比較爲真 – wudzik
您最好做的第一件事是事先準備* textBox1.Text.ToUpper()*並將其存儲在局部變量中。不要忘記每次都會創建一個新的字符串。 – galenus