C# 列表中所有元素的索引最小值
让我再试一次。。 我有两门课:C# 列表中所有元素的索引最小值,c#,collections,C#,Collections,让我再试一次。。 我有两门课: class OrdenO { public int id_orden_O { get; set; } public int Ei_O { get; set; } public int Ii_O { get; set; } public int Si_O { get; set; } public int DTi_O { get; set; } public int Ui_O { get; set; } publ
class OrdenO
{
public int id_orden_O { get; set; }
public int Ei_O { get; set; }
public int Ii_O { get; set; }
public int Si_O { get; set; }
public int DTi_O { get; set; }
public int Ui_O { get; set; }
public int K_O { get; set; }
public int Q_O { get; set; }
public List<int> TT;
}
在这里,我有两个列表集合中的所有元素:
List<OrdenO> myClassArray = new List<OrdenO>()
{
new OrdenO{id_orden_O=1, Ei_O= 60, Ii_O= 180, Si_O=0, DTi_O=0, Ui_O=0, K_O=0, Q_O=0, TT= new List<int>{ 36, 36}},
new OrdenO{id_orden_O=2, Ei_O= 0, Ii_O= 120, Si_O=0, DTi_O=0, Ui_O=0, K_O=0, Q_O=0, TT= new List<int>{ 18, 8}},
};
List<Muelle> mydock = new List<Muelle>()
{
new Muelle{id_muelle=1, Lk=0, Sk=0},
new Muelle{id_muelle=2, Lk=0, Sk=0}
};
List myClassArray=new List()
{
新OrdenO{id_orden_O=1,Ei_O=60,Ii_O=180,Si_O=0,DTi_O=0,Ui_O=0,K_O=0,Q_O=0,TT=new List{36,36},
新OrdenO{id_orden_O=2,Ei_O=0,Ii_O=120,Si_O=0,DTi_O=0,Ui_O=0,K_O=0,Q_O=0,TT=new List{18,8},
};
List mydock=新列表()
{
新Muelle{id_Muelle=1,Lk=0,Sk=0},
新米勒{id_米勒=2,Lk=0,Sk=0}
};
在我的列表
myclassarray
中,我有另一个列表TT
,我想知道如何获得myclassarray
的每个元素的TT
的索引最小值 假设我理解正确-如果要从myClassArray
中的每个项目中提取每个TT
列表的最低值,应该这样做:
foreach (var item in myClassArray)
{
var min = item.TT.Min();
// use min
}
也许:
IEnumerable<int> allminTTIndices = myClassArray
.Select(o => o.TT.Select((tt, i) => new {TT=tt,Index=i})
.OrderBy(x => x.TT)
.First().Index);
IEnumerable allminTTIndices=myClassArray
.Select(o=>o.TT.Select((TT,i)=>new{TT=TT,Index=i})
.OrderBy(x=>x.TT)
.First().Index);
它返回myClassArray
中每个项目的最低TT
值的所有索引
但是,
List mydock=new List()
的用途仍然不清楚。我想您需要TT的最小值
var lowest=myClassArray.SelectMany(o=>o.TT).OrderBy(i=>i.FirstOrDefault();
或
var lowest=myClassArray.SelectMany(o=>o.TT).Min() 这不是C#编码惯例,为了更好地阅读,你应该改变。不清楚你想要什么。什么是“索引最小值”?
foreach (var i in myClassArray)
{
int index = i.TT.IndexOf(i.TT.Min());
}
IEnumerable<int> allminTTIndices = myClassArray
.Select(o => o.TT.Select((tt, i) => new {TT=tt,Index=i})
.OrderBy(x => x.TT)
.First().Index);