Respuesta :
Answer:
Code implemented using LINQ Query below
Explanation:
using System;
using System.Linq;
namespace NameComparision
{
/// <summary>
/// driver program
/// </summary>
class Program
{
public struct Name
{
public string first { get; set; }
public string last { get; set; }
}
static void Main(string[] args)
{
//Create an array of 10 names
Name[] names = new Name[10];
names[0] = new Name() { first = "Bob", last = "Weller" };
names[1] = new Name() { first = "Will", last = "Smith" };
names[2] = new Name() { first = "Pierre", last = "Aoun" };
names[3] = new Name() { first = "Jim", last = "White" };
names[4] = new Name() { first = "Rafal", last = "Brouzuch" };
names[5] = new Name() { first = "Alex", last = "White" };
names[6] = new Name() { first = "Ann", last = "Situ" };
names[7] = new Name() { first = "Mandy", last = "Ibrahim" };
names[8] = new Name() { first = "Nerida", last = "Aschroft" };
names[9] = new Name() { first = "Alex", last = "Lucas" };
//display the array before filtering
Console.WriteLine("Names before filtering in the array");
foreach (var name in names)
{
Console.WriteLine(name.first + "," + name.last);
}
//filter the array where first name precedes last name and then sort the data by first and then last
var namesPreceeds = names.Where(x => x.first.CompareTo(x.last) <= 0).OrderBy(y => y.first).ThenBy(z => z.last);
//display the filtered data
Console.WriteLine("Names after filtering and order by first name and last name");
foreach (var name in namesPreceeds)
{
Console.WriteLine(name.first + "," + name.last);
}
Console.ReadLine();
}
}
}