نمایش نتایج 1 تا 40 از 62

نام تاپیک: آموزش LINQ (از ابتدا تا انتها)

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8
    VIP آواتار raziee
    تاریخ عضویت
    شهریور 1404
    محل زندگی
    تهران
    سن
    36
    پست
    2,208

    Post مثال 4 : گروه بندی و مرتب سازی فهرست فیلم ها

    در مثال قبلی فیلترینگ ساده اطلاعات را نشان دادیم و در این مثال با پرس و جوی پیچیده تر که شامل داده های گروه بندی شده و یا مرتب شده است را نشان خواهیم داد.
    مثال 4 : گروه بندی و مرتب سازی فهرست فیلم ها
    کد های VB.NET

    Public Class Grouping
    Private _genre As Integer
    Private _movieCount As Integer
    Public Property Genre() As Integer
    Get
    Return _genre
    End Get
    Set(ByVal value As Integer)
    _genre = value
    End Set
    End Property
    Public Property MovieCount() As Integer
    Get
    Return _movieCount
    End Get
    Set(ByVal value As Integer)
    _movieCount = value
    End Set
    End Property
    End Class
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim movies = GetMovies()
    Dim groups As New Dictionary(Of String, Grouping)
    For Each m In movies
    If (Not groups.ContainsKey(m.Genre)) Then
    groups(m.Genre) = _
    New Grouping With {.Genre = m.Genre, .MovieCount = 0}
    End If
    groups(m.Genre).MovieCount = groups(m.Genre).MovieCount + 1
    Next
    Dim results As New List(Of Grouping)(groups.Values)
    results.Sort(AddressOf MovieSort)
    Me.GridView1.DataSource = results
    Me.GridView1.DataBind()
    End Sub
    Private Function MovieSort(ByVal x As Grouping, ByVal y As Grouping) As Integer
    Return IIf(x.MovieCount > y.MovieCount, -1, IIf(x.MovieCount
    < y.MovieCount, 1, 0))
    End Function

    کد های C-Sharp

    public class Grouping
    {
    public int Genre { get; set; }
    public int MovieCount { get; set; }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
    var movies = GetMovies();
    Dictionary<int, Grouping> groups = new Dictionary<int, Grouping>();
    foreach (Movie m in movies)
    {
    if (!groups.ContainsKey(m.Genre))
    {
    groups[m.Genre] = new Grouping { Genre = m.Genre, MovieCount = 0 };
    }
    groups[m.Genre].MovieCount++;
    }
    List<Grouping> results = new List<Grouping>(groups.Values);
    results.Sort(delegate(Grouping x, Grouping y)
    {
    return
    x.MovieCount > y.MovieCount ? -1 :
    x.MovieCount < y.MovieCount ? 1 :
    0;
    });
    this.GridView1.DataSource = results;
    this.GridView1.DataBind();
    }

    برای گروه بندی فیلم ها در هر ژانر و شمارش تعداد فیلم در هر ژانر ، نیازمند ایجاد یک کلاس جدید ، ایجاد یک فرهنگ لغت(Dictionary) و اجرای آن در یک نمونه هستیم . میبینیم که برای انجام چنین کار ساده ای کد ها پیچیده شدند علاوه بر آن منابع بسیاری را درگیر کاری که می خواهید انجام دهید می کنید.
    نحوه یک پرس و جوی کمی پیچیده اینگونه بود حالا شما فکر میکنید از همین روش ها استفاده میکنید و یا به دنبال راه کار های دیگری هستید که از کد ها و منابع کمتری استفاده کند.
    این را در نظر بگیرید : اگر شما مجبور باشید برنامه ای را توسعه دهید که با کدهای آن آشنا نیستید ، چه مدت طول می کشد که با کد ها آشنا شوید تا برنامه را به شکلی که میخواهید تغییر دهید؟
    در پست بعدی روش های سنتی را با استفاده از LINQ خواهیم نوشت.
    آخرین ویرایش به وسیله raziee : چهارشنبه 18 آذر 1388 در 19:42 عصر
    نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •