Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > LINQ


Автор: Exception 7.12.2005, 01:15
Не знаю, может он уже давно вышел, по крайней мере, заметил я его только сейчас.
Выкачивать с линков "Future" в моей подписи. Завтра в школе скачаю - поделюсь впечатлениями :)
Добавлено @ 01:17
Чего-то моя подпись не видна.. Щас должна появиться:
Добавлено @ 01:19
Глюки..
Ссылы:
http://msdn.microsoft.com/vbasic/future
http://msdn.microsoft.com/vcsharp/future

Автор: mr.DUDA 7.12.2005, 08:59
Дык, это... там только видеоролики с презентаций, где сам LINQ качать-то ? smile

Автор: Exception 7.12.2005, 11:13
Как же? Под надписью Downloads

Автор: arilou 7.12.2005, 13:44
Уже скачали, сегодня буду смотреть.

Автор: Дрон 7.12.2005, 13:55
Хмм...

Бегло просмотрел спецификацию C# 3.0. Радость, высказанная мной несколько месяцев назад, куда-то потихоньку улетучивается smile

Боюсь, что в итоге он получится такой же, а то и более сложный и запутанный, чем С++.

Автор: Exception 8.12.2005, 16:05
Маздай...
Компилятор летает с ошибками, IntelliSense тормозит... Требует пр-ва имен System.Query, где его найти? Без него код с LINQ не компилится

Автор: VisualProgrammerNET 9.12.2005, 21:04
Эээ... что есть LINQ? smile

Автор: Void 9.12.2005, 21:24
VisualProgrammerNET
http://msdn.microsoft.com/netframework/future/linq/.
С вышеприведенной ссылки все находится.

Кашу делают из языка... Начали двигаться в сторону ФЯ, так и довели бы некоторые вещи до логического завершения.

Кстати, http://rsdn.ru/forum/Message.aspx?mid=1526995&only=1, возможность повлиять на будущее C# smile

Автор: Exception 17.12.2005, 16:14
Хм...
Поставил я LINQ таки. Оказца, System.Query валялся в Program Files.
Ничего так. Вот как это выглядит на VB:
Код

Imports System.Query

Structure Girl 'Баба ;)
    Public Name As String
    Public Age As Byte
End Structure

Module main
    Sub main()
        ' Объявляем кучу баб ;)
        Dim m As Girl
        m.Age = 18
        m.Name = "Маша"
        Dim s As Girl
        s.Age = 21
        s.Name = "Света"
        Dim x As Girl
        x.Age = 0
        x.Name = "Ошибка"
        Dim d As Girl
        d.Age = 15
        d.Name = "Даша"
        Dim babas As Girl() = {m, s, x, d} ' Наши бабы в массиве
        Dim babas18old As Generic.IEnumerable(Of Girl) = Select b From b In babas Where b.age >= 18 ' Отбираем >= 18
        For Each b As Girl In babas18old
            Console.WriteLine(b.Name)
        Next
        Console.ReadLine()
    End Sub
End Module

Выдает, как и ожидалось,
Маша
Света
.

Автор: mr.DUDA 18.12.2005, 01:11
То же самое с пом. итераторов:

Код
using System;
using System.Collections.Generic;

class Girl
{
    public readonly string name;
    public readonly int age;
    public Girl(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

class Girls : List<Girl>
{
    public IEnumerable<Girl> ByAge(int minAge)
    {
        foreach(Girl girl in this)
            if(girl.age >= minAge)
                yield return girl;
    }
}

class TestApp
{
    static void Main()
    {
        Girls list = new Girls();
        list.Add(new Girl("Наташа", 16));
        list.Add(new Girl("Катя", 18));
        list.Add(new Girl("Света", 17));
        list.Add(new Girl("Оля", 20));
        list.Add(new Girl("Катя", 15));
        list.Add(new Girl("Света", 19));

        Console.WriteLine("Девушки от 17-ти и старше:");
        foreach(Girl girl in list.ByAge(17))
            Console.WriteLine(girl.name + " (" + girl.age + ")");
    }
}

Автор: Exception 18.12.2005, 01:27
А никто и не спорит smile .
Но вот некоторые вещи проще пишутся и читаются в LInQ-овском виде.
К примеру,
Код

Dim Guids As IEnumerable(Of Guid) = Select i.Id From i In Items Where i.Century < 19 And i.Material.Trim.ToLower = "бронза"

Кстати, компилер не разрешает в Where указывать пер-ную. Бред.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)