Skip to content

@mrblurgle /gist:4527286
Last active

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
//http://arbel.net/2008/08/18/writing-methods-and-classes-in-linqpad/
//Choose "C# Statement(s)" in the Type drop-down.
//Write the code that LINQPad should execute.
//Put a closing curly-bracket ("}") at the end.
//Write as many classes and methods as you like.
//On the last class/method, omit closing curly-bracket.
List<KeyValuePair<int, int>> housePersonPairs = new List<KeyValuePair<int, int>>();
housePersonPairs.Add(new KeyValuePair<int, int>(1, 11));
housePersonPairs.Add(new KeyValuePair<int, int>(1, 12));
housePersonPairs.Add(new KeyValuePair<int, int>(1, 13));
housePersonPairs.Add(new KeyValuePair<int, int>(2, 232));
housePersonPairs.Add(new KeyValuePair<int, int>(2, 5533));
housePersonPairs.Add(new KeyValuePair<int, int>(2, 40));
List<Person> persons = new List<Person>();
persons.Add(new Person() { ID = 11, Name = "John" });
persons.Add(new Person() { ID = 12, Name = "Jane" });
persons.Add(new Person() { ID = 13, Name = "Zoe" });
persons.Add(new Person() { ID = 232, Name = "Name1" });
persons.Add(new Person() { ID = 5533, Name = "Name2" });
persons.Add(new Person() { ID = 40, Name = "Name3" });
var houseAndNames = housePersonPairs.Join(
persons,
hpp => hpp.Value,
p => p.ID,
(hpp, p) => new { HouseID = hpp.Key, Name = p.Name });
var groupedNames = from hn in houseAndNames
group hn by hn.HouseID into groupOfNames
select groupOfNames.Select(x => x.Name).ToList();
List<House> houses = groupedNames.Select(names => new House() { people_name = names }).ToList();
System.Console.WriteLine(houses);
}
public class Person {
public int ID { get; set; }
public String Name { get; set; }
}
class House
{
public List<string> people_name { get; set; }
//} //This is deliberately left off so it will work as a Linqpad C# statement.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.