0% found this document useful (0 votes)
14 views

Linq

Uploaded by

221441
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Linq

Uploaded by

221441
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

INTRODUCTION TO

LINQ IN C#
OBJECTIVES
🢝 Become familiar with the basic concept of LINQ
🢝 Learn how to use LINQ to query an array
🢝 Learn how to sort an array using LINQ
🢝 Learn how to manipulate collections (e.g., List) by LINQ

2
LINQ
Language Integrated Query (LINQ)
Old way:
🢝 Structured Query Language (SQL)
🢝 Queries are written in string and passed to database which interprets the string,
processes the request, and returns the results

LINQ allows a programming language to submit queries directly to a


wide range of data sources (not just databases!)
LINQ (CONT'D)
LINQ is a logical extension of querying and manipulating data in
databases
In C#, you must include namespace System.Linq
🢝 using System.Linq

Data sources
🢝 Arrays
🢝 Collections
🢝 Files

Query expression is similar to SQL

4
WRITING AN LINQ QUERY
A LINQ query begins with a from clause
🢝 After from clause, specify a range variable and the data source to query
🢝 The range variable represents each item in the data source (much like foreach)
🢝 E.g., passed = from score in scores

The where clause gives a condition for the search and evaluates to
true or false
🢝 If true, the value is selected

The select clause determines what value appears in the results


Do not forget semicolon (;) at the end
QUERYING AN ARRAY
USING LINQ
var filtered = from value in values
where value > 4
select value;
var sorted = from value in filtered
orderby value
select value;
QUERYING AN ARRAY
USING LINQ (CONT'D)
var sorted = from value in filtered
orderby value descending
select value;
var sorted = from value in values
where (value > 4)
orderby value descending
select value;
QUERYING AN ARRAY
USING LINQ
List<Person> people = new List<Person>
{ new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 22 },
new Person { Name = "David", Age = 35 },
new Person { Name = "Eva", Age = 28 } };

// LINQ query to filter people older than 25 and project their names
QUERYING AN ARRAY
USING LINQ
var result = from person in people
where person.Age > 25
select person.Name;
COMPARE ARRAYS WITH
COLLECTIONS
You must specify an arrays size
You can resize it in some languages at runtime
.Net framework generic collections gives greater flexibility
🢝 Reusable
🢝 Reliable
🢝 Powerful
🢝 Efficient

We are going to use the List class from this collection

10
LISTS
Dynamic resizing
LINQ can be used with different types of data sources, including lists
and arrays
🢝 SQL is only used with databases

Lists are similar to arrays but provide additional functionality:


🢝 Dynamic resizing
🢝 Provides many built-in methods
🢝 Can use LINQ queries

11
COLLECTIONS
Collections do not have a fixed size
Size of a collection is increased automatically when elements
are added to it
Collections: lists, sorted lists, queues, stacks and array lists
UnTyped and typed collections
Using System.Collections
🢝 ArrayList numbers = new ArrayList();
🢝 numbers.Add(3);
Using System.Collections.Generic
🢝 List<int> numbers = new List<int>();
🢝 numbers.Add(3);

12
EXAMPLE OF LIST
CODING
List<int> scores = new List<int>();

13
SOME METHODS/PROPERTIES
OF LIST
.Add
🢝 Adds to the end of the list
.Insert
🢝 Inserts an element at the specified index
.Clear
🢝 Removes all elements from the list
.Remove
🢝 Removes the first occurrence of the specified value
.Contains
🢝 Returns true if the List contains value
.Sort
14
STACK OPERATION (BUILT-
IN)
Stack<string> students = new Stack<string>();
students.Push("Abbit");
students.Push("Aguero");
students.Push("Castro");
students.Push("Chen");
students.Push("Cruz");

while (students.Count > 0)


MessageBox.Show("Popped: " + students.Pop());

15
STRUCT – EXAMPLE
public struct Info
{
public string fName;
public string lName;
public string Address1;
public string Address2;
public int zip;
public string Tele;
}

16
LIST OF STRUCT
public List <Info> friendsList = new List<Info>();

Info onePerson;

onePerson.fName=txt_fName.Text;
onePerson.lName=txt_lName.Text;
onePerson.Address1=txtAddr1.Text;
onePerson.Address2=txtAddr2.Text;
onePerson.zip=Convert.ToInt32 (txtZip.Text);
onePerson.Tele=txtTele.Text;

friendsList.Add(onePerson);
17
LINQ SEARCH FOR A LAST
NAME IN A LIST
//will select every person with that last name

var foundTele = from person in friendsList


where
person.lName==txtSearchName.Text
select person;

18
DISPLAY THE SELECTED NAMES
AND TELEPHONE NUMBERS
foreach (var person in foundTele)
{
display +=person.fName+"
"+person.lName+"\t";
display += person.Tele + "\n";
}

MessageBox.Show(display, "Names and Telephone


Nos. Persons searched:");
19
SELECT THOSE WITH GPA >+

var foundGPA =
from person in friendsList
where
person.GPA>=Convert.ToSingle(txtSearchGPA.Text)
select person;

20
DISPLAY
foreach (var person in foundGPA)
{
display += person.fName + " " + person.lName
+ "\t";
display += person.Tele + "\t";
display += Convert.ToString(person.GPA)+"\n";
}
MessageBox.Show(display, "Names and Telephone Nos.
Persons searched:")

21
MORE ABOUT FILE
INPUT/OUTPUT

22
OBTAINING FILE NAME
FROM CHOOSER

OpenFileDialog fDialog = new OpenFileDialog();


if (fDialog.ShowDialog() == DialogResult.OK)
{
fileName = (fDialog.FileName.ToString());
MessageBox.Show(fileName);
}

23
READING FROM A FILE
TextReader ofile = new StreamReader(fileName);
while (ofile.Peek()!=-1)
{
string oneline = ofile.ReadLine();
MessageBox.Show(oneline,"Reading From File..");
string[] items = oneline.Split(',');
onePerson.fName = items[0];
onePerson.lName = items[1];
onePerson.GPA = Convert.ToSingle(items[3]);
onePerson.Tele = items[2];
friendsList.Add(onePerson);
}
ofile.Close();
24
WRITING TO THE FILE
StreamWriter outfile = new StreamWriter(fileName);

foreach (Info person in friendsList)

outfile.WriteLine(person.fName+","+person.lName+"
,"+person.Tele+","+Convert.ToString(person.GPA));

outfile.Close();

25
EXAMPLE OF EMPLOYEES
public class Employee
{
public string FirstName;
public string LastName;
public decimal monthlySalaryValue;
}

26
EXAMPLE OF EMPLOYEES
(CONT'D)
public class LINQwithArray
{

Employee [] employee_array;

LINQwithArray()

// … initializing arrays

public void LINQ_query()


{

var nameSorted = ( from e in employee_array


where e.MonthlySalary >= 4000
orderby e.LastName, e.FirstName
select e).Distinct();
if (!nameSorted.Any())

Console.WriteLine("not found\n");

27

You might also like