搜索列表C#

时间:2017-11-20 09:48:39

标签: c# sql list search console

希望一切顺利。

我在这里遇到一个简单的问题。我正在尝试创建一个控制台应用程序,允许您搜索列表中的单词(通过一个或多个字符,即u =用户,用户组)。

我似乎无法克服这个错误: 错误CS0305使用通用类型'列表'需要1个类型参数wordSearch c:\ Projects \ wordSearch \ wordSearch \ Program.cs 36 Active

请在下面找到我的代码.....欢迎任何帮助提前谢谢。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace wordSearch
{


public class MyList<T> { }
public class TestList<T> { }

class MyList
{
    public static void Main()
    {

        string searchKeyword = "o";

        List<string> items = new List<string>();
        items.Add("User");
        items.Add("User Groups");
        items.Add("User Activity Log");
        items.Add("Report Designer");
        items.Add("Report Activity Log");



        List<string> searchResults = items.FindAll(u => 
         u.Contains(searchKeyword));


            Console.WriteLine("Please type in the first letter of item you 
            are looking for:");
            Console.ReadLine();

        foreach (var result in System.Collections.Generic.List.Where(u => 
         u.IndexOf(mySearchString) == 0))
        {
            Console.WriteLine("User, User Groups, User Activity Log");
            Console.ReadKey();
        }
       foreach (var result in List.Where(r => r.IndexOf(mySearchString) == 
        0))
        {
            Console.WriteLine("Report Desinger, Report Activity Log");
            Console.ReadKey();
        }
    }
}

}

1 个答案:

答案 0 :(得分:3)

您的代码存在两个问题:

  1. 你必须保存用户的输入(“......用户正在寻找的第一个字母......”),例如在您已用作过滤器的mySearchString中。
  2. 您必须查询并扫描items 实例,而不是System.Collections.Generic.ListList 类型
  3. 你可以这样说:

      ...
    
      Console.WriteLine("Please type in the first letter of item you are looking for:");
    
      //DONE: user input saved
      string mySearchString = Console.ReadLine();
    
      //DONE: we scan items, not List 
      foreach (var result in items.Where(u => u.IndexOf(mySearchString) == 0)) {
          Console.WriteLine("User, User Groups, User Activity Log");
          Console.ReadKey();
      }
    
      // DONE: we scan items not List
      foreach (var result in items.Where(r => r.IndexOf(mySearchString) == 0)) {
        Console.WriteLine("Report Desinger, Report Activity Log");
        Console.ReadKey();
      }
    
      ...
    

    编辑:似乎实际的请求是在循环中查询列表foreach而不是复制粘贴,如下所示:

    public static void Main() {
      List<string> items = new List<string>() {
        "User",
        "User Groups",
        "User Activity Log",
        "Report Designer",
        "Report Activity Log",
      }
    
      while (true) {
        Console.WriteLine("Please type in the first letter of item you are looking for:");
        Console.WriteLine("Prease press enter (i.e. type an empty string) to quit"); 
    
        string mySearchString = Console.ReadLine();
    
        if (string.IsNullOrEmpty(mySearchString)) 
          break;
    
        foreach (var item in items.Where(r => r.IndexOf(mySearchString) == 0))
          Console.WriteLine(item);
    
        Console.WriteLine();
      }
    }