今天我遇到了一个非常奇怪的行为。使用Linq查询和对象初始化程序创建一个对象,其设置属性为 List< string> 后,键入原始集合,该对象包含的集合具有不同的条目顺序。
public class PrintHeaderModel
{
public List<string> Ships { get; set; }
}
...
var shipsList = new List<string>() { /* some items */ };
var model = (from inv in db.invoices
where inv.ListID == id && inv.RealmID == realmId
select new PrintHeaderModel()
{
Ships = shipsList,
}).FirstOrDefault();
之后 model.Ships 和 shipsList 中的条目顺序不同
注意:
如果我在创建模型后立即重新分配model.Ships,则命令正确:
model.Ships = shipsList; // after that the order of entries is correct
model.Ships 中的条目顺序始终不同。它随机更改,无需更改代码或数据库
我哪里错了?