Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在LINQ中查询此信息?C#_C#_Linq - Fatal编程技术网

如何在LINQ中查询此信息?C#

如何在LINQ中查询此信息?C#,c#,linq,C#,Linq,考虑到以下几点: public class Person { public Person(string fName, string lName) { this.firstName = fName; this.lastName = lName; } public string firstName; public string lastName; } class App { static void Main()

考虑到以下几点:

public class Person
{
    public Person(string fName, string lName)
    {
        this.firstName = fName;
        this.lastName = lName;
    }

    public string firstName;
    public string lastName;
}

class App
{
    static void Main()
    {
        Person[] peopleArray = new Person[3]
        {
            new Person("John", "Smith"),
            new Person("Jim", "Johnson"),
            new Person("Sue", "Rabon"),
        };
        // select lastName from peopleArray where firstName like '%'J'%'
    }
}
使用LINQ,如何表达这一点:

select lastName from peopleArray where firstName like '%'J'%'
我想打印所有名为
的人的
姓氏
。 我发现用LINQ很难表达出来。请帮助….

列出匹配lastnames=(来自peopleArray中的person)
var query = from person in peopleArray 
            where person.firstName.Contains("J") 
            select person.lastName;

// or
var query = peopleArray.Where(p => p.firstName.Contains("J")).Select(p => p.lastName);

// use results, print to screen?
foreach (string lastName in query)
{
     Console.WriteLine(lastName);
}
其中person.firstName.包含(“J”) 选择person.lastName).ToList();
我给你一些建议。 1.了解代表是什么。 2.了解lambda表达式是什么。 3.学习扩展方法


如果你学会了这些。你可以在linq中写任何你喜欢的东西。

你好,先生!:)。谢谢你的回答。对不起,先生,我该怎么打印呢?由于某种原因,我无法编辑这篇文章,但是如果可以,我会将
选择person.firstName
更改为
选择person.lastName
。当然没什么大不了的。@Rei,修好了,谢谢。yonan,我添加了一个简单的foreach来迭代结果。在第二个foreach上缺少一个结束符)可以显式显示,但是要知道
.ToList()
调用不需要
类型参数。泛型方法仅在编译器无法以其他方式计算出类型参数时才需要该类型参数,例如,如果没有参数,或者如果存在多个候选类型
ToList()
有一个参数,就是查询结果。啊,你当然是对的!仍在学习如何用LINQ更优雅简洁地表达-非常感谢您的输入:-)听起来像是我的一位教授会说的话——特别是,intro Java讲师认为教授垃圾收集器和JIT编译器是自己不懂Java语法的借口。对此我深表歉意。那天我有一个坏月亮,所以说得很谨慎
List<string> matchingLastNames = (from person in peopleArray 
                                  where person.firstName.Contains("J") 
                                  select person.lastName).ToList<string>();