using System;
using System.Collections .Generic ;
using System.Linq ;
public class Test
{
class CharactersDie {
public int characterReads;
public string name;
public CharactersDie( int characterReads, string name) {
this.characterReads = characterReads;
this.name = name;
}
}
public static void Main( )
{
/*********** Эмуляция данных ************************/
List< CharactersDie> charactersDie = new List< CharactersDie> ( ) {
new CharactersDie( 0 , "name_0" ) , new CharactersDie( 1 , "name_1" ) , new CharactersDie( 0 , "name_2" ) , new CharactersDie( 1 , "name_3" ) , new CharactersDie( 0 , "name_4" ) ,
new CharactersDie( 1 , "name_5" ) , new CharactersDie( 0 , "name_6" ) , new CharactersDie( 1 , "name_7" ) , new CharactersDie( 1 , "name_8" ) , new CharactersDie( 0 , "name_9" ) ,
new CharactersDie( 1 , "name_10" ) , new CharactersDie( 0 , "name_11" ) , new CharactersDie( 1 , "name_12" ) , new CharactersDie( 1 , "name_13" ) , new CharactersDie( 0 , "name_14" )
} ;
/*********************************************************/
/***** Логика *****/
var filteredData = charactersDie.Where ( item => item.characterReads == 1 ) .ToList ( ) ;
var numbers = Enumerable.Range ( 0 , filteredData.Count ) .OrderBy ( n => n * n * ( new Random( ) ) .Next ( ) ) .Take ( 3 ) ;
// Инстанциировать рандомные объекты
foreach ( var number in numbers) {
Console.Write ( filteredData[ number] .name + ", " ) ;
// Instantiate(filteredData[number]);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CgljbGFzcyBDaGFyYWN0ZXJzRGllIHsKICAgICAgICBwdWJsaWMgaW50IGNoYXJhY3RlclJlYWRzOwogICAgICAgIHB1YmxpYyBzdHJpbmcgbmFtZTsKCiAgICAgICAgcHVibGljIENoYXJhY3RlcnNEaWUoaW50IGNoYXJhY3RlclJlYWRzLCBzdHJpbmcgbmFtZSkgewogICAgICAgICAgICB0aGlzLmNoYXJhY3RlclJlYWRzID0gY2hhcmFjdGVyUmVhZHM7CiAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgfQogICAgfQogICAgCglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJLyoqKioqKioqKioqINCt0LzRg9C70Y/RhtC40Y8g0LTQsNC90L3Ri9GFICoqKioqKioqKioqKioqKioqKioqKioqKi8KCQlMaXN0PENoYXJhY3RlcnNEaWU+IGNoYXJhY3RlcnNEaWUgPSBuZXcgTGlzdDxDaGFyYWN0ZXJzRGllPigpIHsKICAgICAgICAgICAgbmV3IENoYXJhY3RlcnNEaWUoMCwgIm5hbWVfMCIpLCBuZXcgQ2hhcmFjdGVyc0RpZSgxLCAibmFtZV8xIiksIG5ldyBDaGFyYWN0ZXJzRGllKDAsICJuYW1lXzIiKSwgbmV3IENoYXJhY3RlcnNEaWUoMSwgIm5hbWVfMyIpLCBuZXcgQ2hhcmFjdGVyc0RpZSgwLCAibmFtZV80IiksCiAgICAgICAgICAgIG5ldyBDaGFyYWN0ZXJzRGllKDEsICJuYW1lXzUiKSwgbmV3IENoYXJhY3RlcnNEaWUoMCwgIm5hbWVfNiIpLCBuZXcgQ2hhcmFjdGVyc0RpZSgxLCAibmFtZV83IiksIG5ldyBDaGFyYWN0ZXJzRGllKDEsICJuYW1lXzgiKSwgbmV3IENoYXJhY3RlcnNEaWUoMCwgIm5hbWVfOSIpLAogICAgICAgICAgICBuZXcgQ2hhcmFjdGVyc0RpZSgxLCAibmFtZV8xMCIpLCBuZXcgQ2hhcmFjdGVyc0RpZSgwLCAibmFtZV8xMSIpLCBuZXcgQ2hhcmFjdGVyc0RpZSgxLCAibmFtZV8xMiIpLCBuZXcgQ2hhcmFjdGVyc0RpZSgxLCAibmFtZV8xMyIpLCBuZXcgQ2hhcmFjdGVyc0RpZSgwLCAibmFtZV8xNCIpCiAgICAgICAgfTsKICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogICAgICAgIAoJCQoJCS8qKioqKiDQm9C+0LPQuNC60LAgKioqKiovCiAgICAgICAgdmFyIGZpbHRlcmVkRGF0YSA9IGNoYXJhY3RlcnNEaWUuV2hlcmUoaXRlbSA9PiBpdGVtLmNoYXJhY3RlclJlYWRzID09IDEpLlRvTGlzdCgpOwogICAgICAgIHZhciBudW1iZXJzID0gRW51bWVyYWJsZS5SYW5nZSgwLCBmaWx0ZXJlZERhdGEuQ291bnQpLk9yZGVyQnkobiA9PiBuICogbiAqIChuZXcgUmFuZG9tKCkpLk5leHQoKSkuVGFrZSgzKTsKICAgICAgICAKICAgICAgICAvLyDQmNC90YHRgtCw0L3RhtC40LjRgNC+0LLQsNGC0Ywg0YDQsNC90LTQvtC80L3Ri9C1INC+0LHRitC10LrRgtGLCiAgICAgICAgZm9yZWFjaCAodmFyIG51bWJlciBpbiBudW1iZXJzKSB7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoZmlsdGVyZWREYXRhW251bWJlcl0ubmFtZSArICIsICIpOwogICAgICAgICAgICAvLyBJbnN0YW50aWF0ZShmaWx0ZXJlZERhdGFbbnVtYmVyXSk7CiAgICAgICAgfQoJfQp9