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

C# 如何在自动完成列表中显示不同的项目?,c#,asp.net,C#,Asp.net,如何在自动完成列表中显示不同的项目?我不想重复出现在列表中。我正在从XML文件读取数据 以下是我的web服务代码: [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService] public class WebService : System.Web.S

如何在自动完成列表中显示不同的项目?我不想重复出现在列表中。我正在从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();
        }
    }
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[脚本服务]
公共类WebService:System.Web.Services.WebService
{
[网络方法]
公共字符串[]GetItemsList(字符串前缀文本,整数计数)
{
列表建议=新列表();
使用(XmlTextReader=newxmltextreader(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.Count==Count)中断;
}
}
if(reader.NodeType==XmlNodeType.Element&&reader.Name==“destinationlocation”)
{
string itemName=reader.ReadInnerXml();
if(itemName.StartsWith(prefixText,StringComparison.InvariantCultureIgnoreCase))
{
建议。添加(项目名称);
如果(suggestions.Count==Count)中断;
}
}
}
}
返回建议。ToArray();
}
}

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

if(!suggestions.Contains(itemName))
  suggestions.Add(itemName);
否则,在最坏的情况下,你只能得到一个建议