我需要List<string>
通过将列表与字符串进行比较来对 a 进行排序
例如:我有一个包含以下项目的列表。
Kaboki
kriiki
Kale
Kutta
Kiki
Kicki
Krishna
Kseaki
搜索关键字是ki
我需要使用关键字对列表项进行排序,使得在字符串 start 中匹配的字符串应该是第一个,而在另一个位置具有匹配字符串的字符串必须在最后
这是我当前的代码
public static List<string> GetLocations(string prefixText)
{
try
{
DataTable dtlocs = (DataTable) HttpContext.Current.Session["locations"];
var dValue = from row in dtlocs.AsEnumerable()
where row.Field<string>("Location_Name").ToLower().Contains(prefixText.ToLower())
select row.Field<string>("Location_Name");
var results = dValue.OrderBy(s => s.IndexOf(prefixText, StringComparison.Ordinal));
var str = new List<string>(results.ToList());
if (!str.Any())
str.Add("No locations found");
return str;
}
catch (Exception)
{
var str = new List<string> {"No locations found"};
return str;
}
}
在这里,我可以将第一个匹配的值排在最前面,但无法对剩余的值进行排序
我还有另一个问题。有一个词King Koti
,我正在寻找Ko
,这个词排在第一位。我认为这是因为,字符串有两个子字符串,其中一个子字符串以匹配的单词开头。
我可以将匹配的字母变为粗体吗?