![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера coding4.net/Записи в блоге |
![]() |
|
Сортировка по полю с датой в Generic List с использованием LINQ
2012-07-15 12:29:00 (читать в оригинале)Давайте рассмотрим Generic List в элементах которого есть поле - дата. Допустим вы хотите отсортировать Generic List по полю дата, и хотите сделать это самым простым способом. Здесь написано как это сделать. Я добавил DropDownList с цельэ продемонстрировать результаты:
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class LINQ : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<Employee> empList = new List<Employee>();
empList.Add(new Employee() { ID = 1, FName = "John", DOB = DateTime.Parse("12/11/1971")});
empList.Add(new Employee() { ID = 2, FName = "Mary", DOB = DateTime.Parse("01/17/1961")});
empList.Add(new Employee() { ID = 3, FName = "Amber", DOB = DateTime.Parse("12/23/1971")});
empList.Add(new Employee() { ID = 4, FName = "Kathy", DOB = DateTime.Parse("11/15/1976")});
empList.Add(new Employee() { ID = 5, FName = "Lena", DOB = DateTime.Parse("05/11/1978")});
empList.Sort((x, y) => (x.DOB.CompareTo(y.DOB)));
empList.ForEach(delegate(Employee em)
{
DropDownList1.Items.Add(em.DOB.ToString());
});
}
class Employee
{
public int ID { get; set; }
public string FName { get; set; }
public DateTime DOB { get; set; }
}
}
VB.NET
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Partial Public Class LINQ
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim empList As New List(Of Employee)()
empList.Add(New Employee() With {.ID = 1, .FName = "John", .DOB = DateTime.Parse("12/11/1971")})
empList.Add(New Employee() With {.ID = 2, .FName = "Mary", .DOB = DateTime.Parse("01/17/1961")})
empList.Add(New Employee() With {.ID = 3, .FName = "Amber", .DOB = DateTime.Parse("12/23/1971")})
empList.Add(New Employee() With {.ID = 4, .FName = "Kathy", .DOB = DateTime.Parse("11/15/1976")})
empList.Add(New Employee() With {.ID = 5, .FName = "Lena", .DOB = DateTime.Parse("05/11/1978")})
empList.Sort(Function(x, y) (x.DOB.CompareTo(y.DOB)))
empList.ForEach(AddressOf AnonymousMethod1)
End Sub
Private Sub AnonymousMethod1(ByVal em As Employee)
DropDownList1.Items.Add(em.DOB.ToString())
End Sub
Private Class Employee
Private privateID As Integer
Public Property ID() As Integer
Get
Return privateID
End Get
Set(ByVal value As Integer)
privateID = value
End Set
End Property
Private privateFName As String
Public Property FName() As String
Get
Return privateFName
End Get
Set(ByVal value As String)
privateFName = value
End Set
End Property
Private privateDOB As DateTime
Public Property DOB() As DateTime
Get
Return privateDOB
End Get
Set(ByVal value As DateTime)
privateDOB = value
End Set
End Property
End Class
End Class
Здесь сортировка делается методом List.Sort().
Это перевод. Оригинал здесь.
Как разделить коллекцию строк на группы, используя LINQ ?
2012-07-14 22:30:00 (читать в оригинале)Недавно я работал над интересной проблемой, которая включала разделение коллекции строк на группы. Мы имели большой набор e-mail-ов помещенную в коллекцию строк. Задача была выбирать по 10 e-mail-ов за раз и отсылать их на обработку.
Здесь некий LINQ код, который может быть полезен, если у вас похожие требования - не использовать циклы для групировки.
static void Main(string[] args)
{
string[] email = {"One@devcurry.com", "Two@devcurry.com",
"Three@devcurry.com", "Four@devcurry.com",
"Five@devcurry.com", "Six@devcurry.com",
"Seven@devcurry.com", "Eight@devcurry.com"};
var emailGrp = from i in Enumerable.Range(0, email.Length)
group email[i] by i / 3;
foreach(var mail in emailGrp)
SendEmail(string.Join(";", mail.ToArray()));
Console.ReadLine();
}
static void SendEmail(string email)
{
// Assuming that you have code for sending mails here
Console.WriteLine(email);
Console.WriteLine("--Batch Processed--");
}
Код выше использует оператор LINQ GroupBy() для выделения по 3 мыла за раз и отсылки их на обработку. Помните, что group...by выражение переводится как вызов GroupBy.
Это перевод. Оригинал здесь.Отсортировать массив строк содержащий числа с использованием LINQ
2012-07-14 21:32:00 (читать в оригинале)Вот как отсортировать массив строк с числами на LINQ.
На C# это выглядит так:
static void Main(string[] args)
{
string[] arr = { "3", "1", "6", "10", "5", "13" };
foreach (var num in arr.OrderBy(x => int.Parse(x)))
{
Console.WriteLine(num);
}
Console.ReadLine();
}
На VB.NET это выглядит так:
Sub Main(ByVal args() As String)
Dim arr() As String = { "3", "1", "6", "10", "5", "13" }
For Each num In arr.OrderBy(Function(x) Integer.Parse(x))
Console.WriteLine(num)
Next num
Console.ReadLine()
End Sub
Результат выполнения программы:
Это перевод. Оригинал здесь.
Microsoft переманивает разработчиков Apple
2012-07-13 15:45:00 (читать в оригинале)

Совсем недавно на официальном сайте компании Microsoft появилась новая страница, предназначенная для разработчиков, информация на которой представляет собой своеобразную инструкцию по превращению программы для Apple в приложение для ОС Windows 8.Представители компании сообщают на страницах корпоративного блога о том, что они хотели показать веб-дизайнерам и программистам, работающим с iOS, каким образом следует переделывать приложения, чтобы они полностью соответствовали основным принципам стиля Metro. Кроме того, в инструкции подробно объясняется, как следует преобразовывать схемы взаимодействия, принятые в программах для Apple, и элементы интерфейса пользователя под приложения ОС Windows 8.Какой смысл в представлении подобной информации разработчикам iOS? Microsoft открыла свои карты, опубликовав новость на отдельной веб-странице, посвященной разработке программного обеспечения для новой версии Windows. Дело в том, что компания разработала специальную стратегию материального стимулирования талантливых девелоперов. Оказывается, создание успешного ПО для Windows приносит хорошую прибыль, цифра которой выше среднего заработка разработчиков по отрасли. До тех пор, пока продажи созданной программы не достигнут 25 тысяч долларов, девелопер получает стандартные 70 %. Но как только уровень продаж перешагнёт через эту цифру, разработчик будет получать 80 % стоимости приложения от каждой покупки.Предложенная на веб-сайте инструкция содержит информацию о том, каким образом можно произвести преобразование фотожурнала для iPad под Metro. Обе операционные системы, Windows и iOS для iPad, поддерживают функции сенсорной навигации и команд, но главное различие между ними – это использование в iOS панели инструментов и значков, а в Windows – применение подписей на «плитках» и использование всплывающей командной панели.Чтобы преобразовать приложение Apple под Windows 8, следует удалить такие элементы управления, как кнопки листания страниц, навигационную панель и нижнюю панель. В результате интерфейс избавится от лишней нагрузки.Например, главный экран календаря для Apple показывает по одному изображению на каждый месяц и кнопки перехода к комментариям, сопровождающим фотографии. Windows 8, в свою очередь, на экране отображает мозаику, состоящую из крупного фото месяца и мелких эскизов на этот же месяц. Чтобы прочесть сообщения, под которые выделена целая треть экрана, нужно нажать на заголовок «Последние комментарии», а для того, чтобы просмотреть все фотографии последнего месяца, следует прикоснуться к заголовку «Этот месяц».Командная панель в Windows 8 скрыта по умолчанию, поэтому команды можно вызвать на экран, проведя пальцем снизу вверх или сверху вниз. В зависимости от того, какой объект выбран, появляется определённый набор команд. При выделении фотографии активируются команды загрузки и удаления изображений. Чтобы проделать подобные манипуляции в приложении iPad, необходимо воспользоваться видимой навигационной панелью.В учебном примере Microsoft объясняются и другие функции приложений, в том числе взаимный обмен данными и публикация изображений в различных соцсетях.
Пример Inner Join на C# и LINQ
2012-07-12 17:26:00 (читать в оригинале)Давайте рассмотрим пример метода Join в LINQ и C#. Метод Join выполняет внутреннее объединение над двумя последовательностями, корреляция элементов этих последовательностей основывается на совпадении ключей. Это называется объединение по равенству, потому как мы проверяем на равенсво, используя оператор равенства.
Каr вы знаете из реляционных баз данных, внутреннее объединение сопоставляет каждому элементу первой последовательности, соответствующий элемент из второй последовательности. Это если в сравнении участвуют уникальные ключи. Если соответствующего элемента второй последовательности нет, то элемент первой последовательности также на попадает в выходную последовательность. Метод Join() в LINQ работает точно также.
Мы будем использовать два класса Book и Order и используем Join над ними. Здесь пример данных:
class Program
{
static void Main(string[] args)
{
List<Book> bookList = new List<Book>
{
new Book{BookID=1, BookNm="DevCurry.com Developer Tips"},
new Book{BookID=2, BookNm=".NET and COM for Newbies"},
new Book{BookID=3, BookNm="51 jQuery ASP.NET Recipes"},
new Book{BookID=4, BookNm="Motivational Gurus"},
new Book{BookID=5, BookNm="Spiritual Gurus"}
};
List<Order> bookOrders = new List<Order>{
new Order{OrderID=1, BookID=1, PaymentMode="Cheque"},
new Order{OrderID=2, BookID=5, PaymentMode="Credit"},
new Order{OrderID=3, BookID=1, PaymentMode="Cash"},
new Order{OrderID=4, BookID=3, PaymentMode="Cheque"},
new Order{OrderID=5, BookID=3, PaymentMode="Cheque"},
new Order{OrderID=6, BookID=4, PaymentMode="Cash"}
};
}
}
public class Book
{
public int BookID { get; set; }
public string BookNm { get; set; }
}
public class Order
{
public int OrderID { get; set; }
public int BookID { get; set; }
public string PaymentMode { get; set; }
}
А здесь пример кода, применяющего Join над коллекциями книг и заказов.
var orderForBooks = from bk in bookList
join ordr in bookOrders
on bk.BookID equals ordr.BookID
select new
{
bk.BookID,
Name = bk.BookNm,
ordr.PaymentMode
};
foreach (var item in orderForBooks)
Console.WriteLine(item);
Console.ReadLine();
В коде показанном вверху для сравнения используется оператор равенства. Результат операции помещаем в анонимный тип, который включает BookID, BookName, OrderPaymentMode.
Это перевод. Оригинал здесь.



![]() | ||
+241 |
251 |
_Kicker_ |
+215 |
255 |
Zoxx.ru - Блог Металлиста |
+214 |
302 |
shocvideo |
+203 |
257 |
Ка-фе - фрик - интернет - кафе в RSS |
+199 |
256 |
Сериал "Универ" - комедийный сериал на ТНТ |
![]() | ||
-2 |
46 |
Бабка-ежка |
-2 |
55 |
I_want_be_loved |
-3 |
45 |
Темы_дня |
-3 |
54 |
CadburRy |
-4 |
60 |
Моя Свобода и Любовь |

Загрузка...

взяты из открытых общедоступных источников и являются собственностью их авторов.