列表中所有元素的索引最小值

时间:2013-01-22 15:50:01

标签: 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; }
    public int K_O { get; set; }
    public int Q_O { get; set; }
    public List<int> TT;
}

和班穆勒

class Muelle
{
    public int id_muelle { get; set; }
    public int Lk { get; set; }
    public int Sk { get; set; }
}

在这里,我在Lists Collection中都有所有元素:

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}
};

在我的列表myclassarray中,我有另一个列表TT,我想知道如何为{{1}的每个元素获取TT的索引最小值}。

4 个答案:

答案 0 :(得分:0)

假设我理解正确 - 你想从TT中的每个项目中提取每个myClassArray列表的最低值,这应该这样做:

foreach (var item in myClassArray)
{
    var min = item.TT.Min();
    // use min
}

答案 1 :(得分:0)

foreach (var i in myClassArray)
{
  int index = i.TT.IndexOf(i.TT.Min());
}

答案 2 :(得分:0)

也许:

IEnumerable<int> allminTTIndices = myClassArray
        .Select(o => o.TT.Select((tt, i) => new {TT=tt,Index=i})
                         .OrderBy(x => x.TT)
                         .First().Index);

返回TT中每个项目的最低myClassArray值的所有索引。

然而,List<Muelle> mydock = new List<Muelle>()的目的仍不明确。

答案 3 :(得分:0)

我想你想要TT的最小值

var low = myClassArray.SelectMany(o =&gt; o.TT).OrderBy(i =&gt; i).FirstOrDefault(); OR

var low = myClassArray.SelectMany(o =&gt; o.TT).Min();