如何在自动完成列表中显示不同的项目

本文关键字:显示 项目 列表 | 更新日期: 2023-09-27 17:54:36

如何在自动完成列表中显示不同的项目?我不想在列表中出现重复项。我正在从XML文件中读取数据。

这是我的web服务代码:

[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ScriptService]
     
    public class WebService : System.Web.Services.WebService
    {
        [WebMethod]
        public string[] GetItemsList(string prefixText, int count)
        {
            List<string> suggestions = new List<string>();
            using (XmlTextReader reader = new XmlTextReader(HttpContext.Current.Server.MapPath("flightdata3.xml")))
            {
                while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.Element && reader.Name == "departurelocation")
                    {
                        string itemName = reader.ReadInnerXml();
                        if (itemName.StartsWith(prefixText, StringComparison.InvariantCultureIgnoreCase))
                        {
                            suggestions.Add(itemName);
     
                            if (suggestions.Count == count) break;
                        }
                    }
                    if (reader.NodeType == XmlNodeType.Element && reader.Name == "destinationlocation")
                    {
                        string itemName = reader.ReadInnerXml();
                        if (itemName.StartsWith(prefixText, StringComparison.InvariantCultureIgnoreCase))
                        {
                            suggestions.Add(itemName);
                            if (suggestions.Count == count) break;
                        }
                    }
                }
            }
            return suggestions.ToArray();
        }
    }

如何在自动完成列表中显示不同的项目

为了保证计数,您必须在添加它们之前检查不同的项:

if(!suggestions.Contains(itemName))
  suggestions.Add(itemName);