Step:2: Code
Class: Student.cs
using System;
using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Collections.Generic;
/// <summary>
/// Summary description for Player
/// </summary>
public class Student
{
public string Name { get; set; }
public string Subject { get; set; }
public int ID { get; set; }
public List<int> Scores { get; set; }
public Student()
{
//
// TODO: Add constructor logic here
//
}
public Student[] GetStudent()
{
Student[] student =
{ new Student { Name="Daniel",Subject="Chemistry",ID=8 },
new Student { Name="David",Subject="Chemistry",ID=8 },
new Student { Name="Brandon",Subject="Chemistry",ID=8 },
new Student { Name="Zared",Subject="English",ID=4 },
new Student { Name="Vishal",Subject="History",ID=1 } };
return student;
}
}
Class: Teacher.cs
using System;
using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Collections.Generic;
/// <summary>
/// Summary description for Teacher
/// </summary>
public class Teacher
{
public string Name { get; set; }
public string Subject { get; set; }
public int CourseID { get; set; }
public List<int> Scores { get; set; }
public Teacher()
{
//
// TODO: Add constructor logic here
//
}
public Teacher[] GetTeacher()
{
Teacher[] teacher = { new Teacher { Name="Mr.Smth",Subject="Chemistry",CourseID=8
},
new Teacher { Name="Ms.Jones",Subject="Music",CourseID=6 },
new Teacher { Name="Ms.Kovak",Subject="English",CourseID=4 },
new Teacher { Name="Mr.Menon",Subject="English",CourseID=1 } };
return teacher;
}
}
Code;main.cs
body
{
background-color:Gray;
}
#div1
{
background-color: #FFFFCC; color: #000080; position: absolute;
width:600px; height: 350px;
padding-left: 20px; border-color:Maroon; border-style:solid; border-width:
4px; font-size:16px;
}
table
{
width : 600px; vertical-align:top;
}
#td1
{
width : 200px;vertical-align:top; text-align:left;
}
#td2
{
width : 400px;vertical-align:top; text-align:left;
}
#GridView1
{
width : 200px; border-style: solid; border-width:2px; border-color:Navy;
}
Code:Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>mm.LINQIntro12 : Concat and Func extension</title>
<link href="main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div id="div1">
<table >
<tr><td colspan="2" > List is serialized with select operator</td>
</tr>
<tr><td id="td1" > <asp:GridView ID="GridView1" runat="server" >
</asp:GridView>
</td>
<td id="td2"><asp:Label ID="L1" runat="server" Text=""></asp:Label></td>
</tr>
<tr><td ><asp:Label ID="L2" runat="server" Text=""></asp:Label>
</td>
<td >
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
Code: Default.aspx.cs
using System;
using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Collections.Generic;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Student students = new Student();
Teacher teachers = new Teacher();
Student[] st = students.GetStudent();
Teacher[] ts = teachers.GetTeacher();
//IEnumerable<string> query = cats.Select(cat =>
cat.Name).Concat(dogs.Select(dog => dog.Name));
Func<Student, bool> fliterstID = d1 => d1.ID == 8;
Func<Student, string> fliterstName = d2 => d2.Name;
Func<Teacher, bool> flitertsID = t1 => t1.CourseID == 8;
Func<Teacher, string> flitertsName = t2 => t2.Name;
//simple query student and teacher's name concatination, suing extension
fo IEnumerable<T> class
IEnumerable<string> query1 = st.Select(name =>
name.Name).Concat(ts.Select(t => t.Name));
//Restricting with where clauses
IEnumerable<string> query2 = st.Where(d => d.ID == 8).Select(d =>
d.Name).Concat(ts.Where(d => d.CourseID == 8).Select(d => d.Name));
//Extension of Enumerable class with Func
IEnumerable<string> query3 =
st.Where(fliterstID).Select(fliterstName).Concat(ts.Where(flitertsID).Select(flitertsName));
GridView1.DataSource = st;
GridView1.DataBind();
L1.Text += "----Query 1: Simple concat------<br/>";
foreach (var item in query1)
{
L1.Text += item +"  ";
}
L1.Text += "<br/>----Query 2: Where concat------<br/>";
foreach (var item in query2)
{
L1.Text += item + " <br/>";
}
L2.Text += "---query3 : using Func-----<br/>";
foreach (var item in query3)
{
L2.Text += item + " <br/>";
}
}
}