小编Fle*_*ing的帖子

c#Lambda,LINQ ....改进这个方法

我正在学习更多关于LINQ和Lambda表达式的过程,但在这个阶段,我根本就没有"获取"Lambda表达式.

是的......我是这些新概念的新手.

我的意思是,我看到的每个例子都说明了如何添加或减去参数.

那些更复杂的东西怎么样?

为了帮助我获得更好的理解,我已经为希望参与的任何人发布了一个小挑战.我有以下方法将接受任何字符串,并将空格放在任何大写字符和它们的前一个邻居之间(如下所示).


"SampleText"="Sample Text"
"DoesNotMatterHowManyWords"="不重要多少字"

这是代码;

public static string ProperSpace(string text)
{
    var sb = new StringBuilder();
    var lowered = text.ToLower();

    for (var i = 0; i < text.Length; i++)
    {
        var a = text.Substring(i, 1);
        var b = lowered.Substring(i, 1);
        if (a != b) sb.Append(" ");
        sb.Append(a);
    }

    return sb.ToString().Trim();
}
Run Code Online (Sandbox Code Playgroud)

我确信上面的方法可以重写为与LINQ或Lambda表达式一起使用.我希望这项练习能够帮助我开启这些新概念.

此外,如果您有任何LINQ或Lambda教程的良好链接,请提供.


编辑

感谢所有贡献的人.虽然当前的方法确实可以完成这项工作,但我很高兴看到它可以被修改为使用lambda表达式.我也承认这可能不是LINQ的最佳例子.

这是使用Lambda表达式的新更新方法(经测试可用);

public static string ProperSpace(string text)
{
    return text.Aggregate(new StringBuilder(), (sb, c) =>
    {
        if (Char.IsUpper(c)) sb.Append(" ");
        sb.Append(c);
        return …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

5
推荐指数
2
解决办法
2337
查看次数

LINQ - 帮我把握一个例子,我认为LINQ应该能够解决!

我正试图进入LINQ对象,因为我可以看到它的力量.幸运的是,我有一个问题,我认为LINQ应该能够解决.

这是问题(细节是一个例子);

public class SchoolClass
{
    public int ID;
    public string Name;
    public string Teacher;
    public string RoomName;

    public string Student_Name;
    public int Student_Age;
}
Run Code Online (Sandbox Code Playgroud)

正如您在示例中所看到的,ClassName,Teacher和Room与学生之间存在一对多的关系,即一个班级中可能有许多学生.

如果我们有一个List,是否可以使用LINQ创建一个List但只有一个实例ID,Name,Teacher,RoomName和一个Student_Name和Age的ArrayList?

制作这个:

public class Students
{
    public string Student_Name;
    public int Student_Age;
}

public class SchoolClass
{
    public int ID;
    public string Name;
    public string Teacher;
    public string RoomName;

    public ArrayList Students;
}
Run Code Online (Sandbox Code Playgroud)

基本上,使用LINQ将List清理为更合理的结构?

给出这个例子的一些背景知识.DataGrid使用第二个结构来生成Master-Child关系.我们在类中存储SchoolClass和StudentInformation,如上所示.LINQ很好地将我们的初始List转换为可由DataGrid使用的结构.

c# linq

4
推荐指数
1
解决办法
195
查看次数

标签 统计

c# ×2

linq ×2

lambda ×1