我有一個A型對象的數組: A[] ar
。 和一個整數列表: List<int> indexes
。如何使用LINQ從陣列中刪除對象
如何使用LINQ從ar
中刪除indexes
中索引的所有對象? 也就是說我需要一個新的(較小的)數組,其索引不在indexes
中。使用LINQ。
剩餘對象的順序是否與刪除前相同?
非常感謝。
我有一個A型對象的數組: A[] ar
。 和一個整數列表: List<int> indexes
。如何使用LINQ從陣列中刪除對象
如何使用LINQ從ar
中刪除indexes
中索引的所有對象? 也就是說我需要一個新的(較小的)數組,其索引不在indexes
中。使用LINQ。
剩餘對象的順序是否與刪除前相同?
非常感謝。
這可能看起來很奇怪,但你想要做什麼(它不是一個LINQ):
var filtered = new List<A>();
for (var i = 0; i < ar.Length; i++)
{
if (indexes.Contains(i))
continue;
filtered.Add(ar[i]]);
}
var ar = filtered.ToArray();
如果你的整數列表是非常大的,可以考慮使用HashSet<int>
而不是列表以獲得更高的性能
@openwix謝謝..非linq版本確實很簡單。但我想用LINQ查詢來做同樣的事情。當然,如果可能的話。 – Ilan
您是否想獲得新的Array?數組是不可變的,你只能設置NULL而不是引用一個對象 – opewix
@opewix對於我來說,僅僅設置null是不夠的,我需要一個新的(更小的)數組,而不需要索引在「索引」中的對象。 – Ilan