score:1

double tickperday = (double)(24.0 * 60.0 * 60.0 * 10000000.0);
list<mytype> datalist = new list<mytype>() {
    new mytype() { filename = "file_1", index = 1, time = (datetime.parse("1/1/1900").adddays(42038)).addticks((long)(tickperday * .6924500000))},
    new mytype() { filename = "file_2", index = 2, time = (datetime.parse("1/1/1900").adddays(42038)).addticks((long)(tickperday * .6435300000))},
    new mytype() { filename = "file_3", index = 3, time = (datetime.parse("1/1/1900").adddays(42038)).addticks((long)(tickperday * .7962800000))},
    new mytype() { filename = "file_4", index = 4, time = (datetime.parse("1/1/1900").adddays(42038)).addticks((long)(tickperday * .9340600000))},
    new mytype() { filename = "file_5", index = 2, time = (datetime.parse("1/1/1900").adddays(42038)).addticks((long)(tickperday * .9561300000))},
    new mytype() { filename = "file_6", index = 1, time = (datetime.parse("1/1/1900").adddays(42039)).addticks((long)(tickperday * .9561300000))},
    new mytype() { filename = "file_7", index = 4, time = (datetime.parse("1/1/1900").adddays(42039)).addticks((long)(tickperday * .5551700000))},
    new mytype() { filename = "file_8", index = 2, time = (datetime.parse("1/1/1900").adddays(42038)).addticks((long)(tickperday * .9652200000))},
    new mytype() { filename = "file_9", index = 1, time = (datetime.parse("1/1/1900").adddays(42039)).addticks((long)(tickperday * .0111500000))},
    new mytype() { filename = "file_10", index = 3, time = (datetime.parse("1/1/1900").adddays(42039)).addticks((long)(tickperday * .0990100000))}
    };

int maxindex = datalist.max(x => x.index);

var results = datalist.groupby(x => x.index)
    .select(x => enumerable.range(1, maxindex)
        .select(y => x.any(z => z.index == y) ? x.where(z => z.index == y).firstordefault() : new mytype() { filename = "file_spacer", index = y, time = datetime.parse("1/1/1900")})
        .tolist())
    .tolist();  

Related Query

More Query from same tag