使用linq选择后显示数组

时间:2016-05-12 13:21:47

标签: c# arrays linq

我正在尝试用4个字母列出所有单词。但我不确定为什么它不起作用。它不会显示它。

这是代码:

    IEnumerable<string> query4 = words
       .Where(n => n.Length == 4)
       .Select(n => n);

    DisplayArray(query4);

这是我的显示方法:

    private static void DisplayArray<T>(T[] array)
    {
        foreach (T item in array)
            Console.WriteLine(item);
    } 

2 个答案:

答案 0 :(得分:2)

好吧,根据您当前的代码

  private static void DisplayArray<T>(T[] array)

想要数组T[],但只提供IEnumerable<string>,因此您应该有编译时错误。将T[]更改为IEnumrable<T>

  // you have no need in T[], IEnumerable<T> is quite enough
  private static void DisplayArray<T>(IEnumerable<T> array) {
    foreach (T item in array)
      Console.WriteLine(item);
  }

最后(请注意Select(n => n) 多余并且可以删除):

  DisplayArray(words.Where(n => n.Length == 4));

答案 1 :(得分:0)

private static void DisplayArray(IEnumerable<string> array)
{
    foreach (string item in array)
       Console.WriteLine(item);
}