我正在搜索多个列我想确定哪一列与结果中的搜索文本匹配。
例如,我有一个这样的表:
var names = new[]
{
new { FirstName = "James", LastName = "Doe", NickName = "Bobby", },
new { FirstName = "Joe", LastName = "Doe", NickName = "Joey", },
new { FirstName = "Cookie", LastName = "Monster", NickName = "Rick", },
new { FirstName = "Bob", LastName = "Magoo", NickName = "George", },
new { FirstName = "Mark", LastName = "Hsmil", NickName = "Masrkie", },
new { FirstName = "Joe", LastName = "Doe", NickName = "James", },
};
和这样的查询:
string searchText = "James";
var result = names
.Where(x => x.FirstName.Contains(searchText)
|| x.LastName.Contains(searchText)
|| x.NickName.Contains(searchText));
我会得到两个结果:
名 | 姓 | 昵称 |
---|---|---|
詹姆士 | 能源部 | 鲍比 |
乔 | 能源部 | 詹姆士 |
有没有一种方法可以从我的结果中确定谁在哪一列上匹配?
我合理地用谷歌搜索了这个,将不胜感激朝正确方向轻推。