Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как найти строку с максимальным значением даты в DataTable / 10 сообщений из 10, страница 1 из 1
08.06.2010, 16:47
    #36676013
karapetyan_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
Народ подскажите как найти строку с максимальным значением поля MyDate (типа DateTime) в таблице MyTable если поле MyDate уникальное?
какоe такоe чудо LINQ-выражение прогнать?

С уважением. Ашот.
...
Рейтинг: 0 / 0
08.06.2010, 17:29
    #36676113
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
MAX?
...
Рейтинг: 0 / 0
08.06.2010, 17:46
    #36676169
karapetyan_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
МСУMAX?

Ну да MAX ... из N строк выбрать ту, в которой поле MyDate содержит максимальную дату....
...
Рейтинг: 0 / 0
08.06.2010, 17:56
    #36676203
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
Не нравится MAX, попробуйте OrderByDescending(a=>a.Date).First();
...
Рейтинг: 0 / 0
08.06.2010, 18:10
    #36676246
karapetyan_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
buredНе нравится MAX, попробуйте OrderByDescending(a=>a.Date).First();


Так и сделал, просто думал, может есть что еще.........
...
Рейтинг: 0 / 0
08.06.2010, 18:13
    #36676253
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
Пипец
...
Рейтинг: 0 / 0
08.06.2010, 18:49
    #36676349
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var players = new List<Player>();
        players.Add(new Player() { Birth = DateTime.Parse("23.08.1978"), Name = "Kobe" });
        players.Add(new Player() { Birth = DateTime.Parse("30.12.1984"), Name = "LeBron" });
        players.Add(new Player() { Birth = DateTime.Parse("03.08.1982"), Name = "Hryapa" });

        Response.Write(players.OrderByDescending(p => p.Birth).First().ToString());
        Response.Write("<br/>");
        Response.Write(players.Where(p => (p.Birth == players.Max(b=>b.Birth))).First().ToString());

    }


}
public class Player
{
    public DateTime Birth { get; set; }
    public String Name { get; set; }

    public override string ToString()
    {
        return String.Format("Name: {0}, Birth: {1}", this.Name, this.Birth.ToShortDateString());
    }
}


...
Рейтинг: 0 / 0
09.06.2010, 11:57
    #36677610
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var players = new List<Player>();
        players.Add(new Player() { Birth = DateTime.Parse("23.08.1978"), Name = "Kobe" });
        players.Add(new Player() { Birth = DateTime.Parse("30.12.1984"), Name = "LeBron" });
        players.Add(new Player() { Birth = DateTime.Parse("03.08.1982"), Name = "Hryapa" });

        Response.Write(players.OrderByDescending(p => p.Birth).First().ToString());
        Response.Write("<br/>");
        Response.Write(players.Where(p => (p.Birth == players.Max(b=>b.Birth))).First().ToString());
        Response.Write("<br/>");
        Response.Write(players.Young().ToString());

    }

}

public static class BuredExtensions
{
    public static T Young<T>(this IEnumerable<T> coll) where T: Player
    {
        return coll.Where(p => (p.Birth == coll.Max(b => b.Birth))).First();
    }
}

public class Player
{
    public DateTime Birth { get; set; }
    public String Name { get; set; }

    public override string ToString()
    {
        return String.Format("Name: {0}, Birth: {1}", this.Name, this.Birth.ToShortDateString());
    }
}
...
Рейтинг: 0 / 0
09.06.2010, 12:45
    #36677802
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
Звезданул в сети более оптимальный метод

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var players = new List<Player>();
        players.Add(new Player() { Birth = DateTime.Parse("23.08.1978"), Name = "Kobe" });
        players.Add(new Player() { Birth = DateTime.Parse("30.12.1984"), Name = "LeBron" });
        players.Add(new Player() { Birth = DateTime.Parse("03.08.1982"), Name = "Hryapa" });

        Response.Write(players.OrderByDescending(p => p.Birth).First().ToString());
        Response.Write("<br/>");
        Response.Write(players.Where(p => (p.Birth == players.Max(b=>b.Birth))).First().ToString());
        Response.Write("<br/>");
        Response.Write(players.Young().ToString());
        Response.Write("<br/>");
        Response.Write(players.ForeverYoung(p=>p.Birth).ToString());

    }

}

public static class BuredExtensions
{
    public static T Young<T>(this IEnumerable<T> coll) where T: Player
    {
        return coll.Where(p => (p.Birth == coll.Max(b => b.Birth))).First();
    }

public static T ForeverYoung<T, TCompare>(this IEnumerable<T> collection, Func<T, TCompare> func) where TCompare : IComparable<TCompare>
    {
        T maxItem = default(T);
         TCompare maxValue = default(TCompare);
         foreach (var item in collection)
         {
             TCompare temp = func(item);
             if (maxItem == null || temp.CompareTo(maxValue) > 0)
             {
                maxValue = temp;
                maxItem = item;
            }
        }
        return maxItem;
    }
}

public class Player
{
    public DateTime Birth { get; set; }
    public String Name { get; set; }

    public override string ToString()
    {
        return String.Format("Name: {0}, Birth: {1}", this.Name, this.Birth.ToShortDateString());
    }
}
...
Рейтинг: 0 / 0
09.06.2010, 12:47
    #36677812
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти строку с максимальным значением даты в DataTable
Владгридов с циклами for и массивами просьба не беспокоиться
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как найти строку с максимальным значением даты в DataTable / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]