列表排序WITH重复和LINQ

时间:2017-01-24 08:29:48

标签: c# linq list unity3d unity5

我试图在这里找到类似的东西,但它看起来不存在......

我有以下代码创建了包含多个元素的列表。其中一个要素是"值"我希望按以下方式对列表进行排序:

public int value;
public GameObject orbMesh;
public GameObject valueText;
public bool touchEnabled; 
public GameObject theOrbMesh;
public GameObject theValueText;   

List<Orb> myDeck = new List<Orb> ();

public Orb (int Value, GameObject OrbMesh, GameObject ValueText, bool TouchEnabled)
{
    value = Value;
    orbMesh = OrbMesh;
    valueText = ValueText;
    touchEnabled = TouchEnabled;
}

for (int z = 0; z < 4; z++)
{   
    for (int x = 0; x < 10; x++)
    {
        myDeck.Add (new Orb (x + 1, Instantiate (theOrbMesh, new Vector3 (-3.6f + (x * 0.8f), -0.68f, z * 0.8f), Quaternion.identity), Instantiate (theValueText, new Vector3 (-3.6f + (x * 0.8f), -1f, z * 0.8f), Quaternion.identity), true));
    }
}

在此之后......我想用&#34;值&#34;来排序myDeck。所以我用过这个:

myDeck.OrderBy (w => w.value).ToList();

但它似乎只有在没有重复的情况下才能起作用......不幸的是,我需要重复这些&#34;价值&#34; ......

你可以帮我解决这个问题吗?非常感谢!!

1 个答案:

答案 0 :(得分:2)

好的,明白了......我很蠢......

myDeck.OrderBy (w => w.value).ToList();

应该是:

myDeck = myDeck.OrderBy (w => w.value).ToList();

似乎在某些时候我做了一个改变而且它根本没有排序......或者与我们的重复...所以......再次......我是愚蠢的:(