PDA

View Full Version : کمی LINQ



Vahid_moghaddam
جمعه 20 شهریور 1388, 10:20 صبح
مرجع http://windowsclient.net/

یافتن و حذف فایل های قدیمی



var query = from o in Directory.GetFiles("/YourFolder", "*.*",
SearchOption.AllDirectories)
let x = new FileInfo(o)
where x.CreationTime <= DateTime.Now.AddMonths(-6)
select o;
foreach (var item in query)
{
File.Delete(item);
}

Vahid_moghaddam
جمعه 20 شهریور 1388, 10:24 صبح
مرجع http://windowsclient.net (http://windowsclient.net/)
فرض کنید می خواهیم لیست زیر را مرتب کنیم


ArrayList names = new ArrayList(5);
names.Add("Tony Abbot");
names.Add("Tony A Farrow");
names.Add("Tony Charles");
names.Add("Tony Small");
names.Add("Bob Brown");


این کار با استفاده از LINQ به شکل زیر انجام پذیر است:


var query = from p in names.Cast<string>()
let count = p.Split(' ').Length - 1
let surname = p.Split(' ')[count]
let givenname = p.Split(' ')[0]
orderby surname ascending
select new
{
GivenName = givenname,
Surname = surname
};

foreach (var item in query)
{
// item.GivenName
// item.Surname
}

Vahid_moghaddam
جمعه 20 شهریور 1388, 10:34 صبح
فرض کنید دو لیست مانند زیر داریم و می خواهیم item های انتخاب شده را از ایست ها بیرون بکشیم و آنها را در یک لیست قرار دهیم.


<asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple">
<asp:ListItem Text="One" Value="One" />
<asp:ListItem Text="Two" Value="Two" />
<asp:ListItem Text="Three" Value="Three" />
<asp:ListItem Text="Four" Value="Four" />
<asp:ListItem Text="Five" Value="Five" />
<asp:ListItem Text="Six" Value="Six" />
<asp:ListItem Text="Seven" Value="Seven" />
</asp:ListBox>

<asp:ListBox ID="ListBox2" runat="server" SelectionMode="Multiple">
<asp:ListItem Text="One" Value="One" />
<asp:ListItem Text="Two" Value="Two" />
<asp:ListItem Text="Three" Value="Three" />
<asp:ListItem Text="Four" Value="Four" />
<asp:ListItem Text="Five" Value="Five" />
<asp:ListItem Text="Six" Value="Six" />
<asp:ListItem Text="Seven" Value="Seven" />
</asp:ListBox>

با استفاده از LINQ


var query = from p in ListBox1.Items.OfType<ListItem>()
.Concat(ListBox2.Items.OfType<ListItem>())
.Where(o => o.Selected)
select new
{
Text = p.Text
};

foreach (var item in query)
{
// print item
}

Vahid_moghaddam
جمعه 20 شهریور 1388, 10:36 صبح
یافتن عضو های غیر تکراری در یک string


var unique = "Apples, Oranges, Apples, Melons"
.Split(new string[] { ", " },
StringSplitOptions.RemoveEmptyEntries).Distinct();
foreach (var item in unique)
{
Response.Write(item + "<br />");
}

Vahid_moghaddam
شنبه 21 شهریور 1388, 19:59 عصر
فرض کنید می خواهیم تمام TextBox ها را disable کنیم. با استفاده از LINQ



foreach (TextBox myChildTextBox in this.Controls.OfType<TextBox>())
{ myChildTextBox.Enabled = false;
}