自动完成显示不同的项目

时间:2011-05-04 18:13:56

标签: c# asp.net

如何在自动填充列表中显示不同的项目?我不希望重复项显示在列表中。我正在读取XML文件中的数据。

这是我的网络服务代码:

[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();
    }
}

1 个答案:

答案 0 :(得分:1)

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

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

否则你只会在一个建议的情况下结束最坏的情况。