using System;
using System.Globalization ;
using System.Linq ;
using System.Collections .Generic ;
public class Test
{
public static void Main( )
{
var myTable = new List< Foo> ( ) { new Foo { ColumnValue = "Five" } , new Foo { ColumnValue = "Four" } , new Foo { ColumnValue = "Three" } , new Foo { ColumnValue = "One" } } ;
string[ ] prefs = new[ ] { "One" , "Two" , "Three" } ;
string myResult = prefs.Select ( ( pref, index) => new { pref, index } )
.Join ( myTable, xPref => xPref.pref , x => x.ColumnValue , ( xPref, x) => new { xPref, x } )
.OrderBy ( x => x.xPref .index )
.Select ( x => x.x .ColumnValue )
.DefaultIfEmpty ( "Four" )
.First ( ) ;
Console.Write ( myResult) ;
}
public class Foo
{
public string ColumnValue { get; set; }
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKcHVibGljIGNsYXNzIFRlc3QKewogICAgCgoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgICAgIHZhciBteVRhYmxlID0gbmV3IExpc3Q8Rm9vPigpIHsgbmV3IEZvbyB7IENvbHVtblZhbHVlID0gIkZpdmUiIH0sIG5ldyBGb28geyBDb2x1bW5WYWx1ZSA9ICJGb3VyIiB9LCBuZXcgRm9vIHsgQ29sdW1uVmFsdWUgPSAiVGhyZWUiIH0sIG5ldyBGb28geyBDb2x1bW5WYWx1ZSA9ICJPbmUiIH0gfTsKICAgICAgICBzdHJpbmdbXSBwcmVmcyA9IG5ld1tdIHsgIk9uZSIsICJUd28iLCAiVGhyZWUiIH07CiAgICAgICAgc3RyaW5nIG15UmVzdWx0ID0gcHJlZnMuU2VsZWN0KChwcmVmLCBpbmRleCkgPT4gbmV3IHsgcHJlZiwgaW5kZXggfSkKICAgICAgICAgICAgLkpvaW4obXlUYWJsZSwgeFByZWYgPT4geFByZWYucHJlZiwgeCA9PiB4LkNvbHVtblZhbHVlLCAoeFByZWYsIHgpID0+IG5ldyB7IHhQcmVmLCB4IH0pCiAgICAgICAgICAgIC5PcmRlckJ5KHggPT4geC54UHJlZi5pbmRleCkKICAgICAgICAgICAgLlNlbGVjdCh4ID0+IHgueC5Db2x1bW5WYWx1ZSkKICAgICAgICAgICAgLkRlZmF1bHRJZkVtcHR5KCJGb3VyIikKICAgICAgICAgICAgLkZpcnN0KCk7CiAgICAgICAgQ29uc29sZS5Xcml0ZShteVJlc3VsdCk7Cgl9CiAgICAKICAgIHB1YmxpYyBjbGFzcyBGb28KICAgIHsKICAgICAgICBwdWJsaWMgc3RyaW5nIENvbHVtblZhbHVlIHsgZ2V0OyBzZXQ7IH0KICAgIH0KfQ==