首頁 > 後端開發 > C++ > 如何正確地將清單拆分為自訂大小的較小清單(例如 30 個或更少)?

如何正確地將清單拆分為自訂大小的較小清單(例如 30 個或更少)?

Barbara Streisand
發布: 2025-01-18 04:47:12
原創
652 人瀏覽過

How to Correctly Split a List into Smaller Lists of a Custom Size (e.g., 30 or less)?

將清單分割成自訂大小的較小清單

將清單分割成特定大小的較小清單時,遇到不正確的清單分割可能會令人沮喪。讓我們探討如何修改您的函數 splitList 以確保準確地將其分割成大小為 30 或更小的清單。

您原始函數的問題在於循環計算:for (int i=(int)(Math.Ceiling((decimal)(locations.Count/nSize))); i>=0; i--)。您不是從所需子列表數迭代到 0,而是從更高的值開始循環,導致不正確的分割。

更新後的函數應為:

<code class="language-c#">public static List<List<float>> splitList(List<float> locations, int nSize = 30)
{
    List<List<float>> list = new List<List<float>>();

    int numLists = (int)(Math.Ceiling((decimal)(locations.Count / nSize)));

    for (int i = 0; i < numLists; i++)
    {
        List<float> subLocat = new List<float>(locations); // 创建locations的副本

        if (subLocat.Count >= ((i * nSize) + nSize))
            subLocat.RemoveRange(i * nSize, nSize);
        else
            subLocat.RemoveRange(i * nSize, subLocat.Count - (i * nSize));

        Debug.Log("Index: " + i.ToString() + ", Size: " + subLocat.Count.ToString());
        list.Add(subLocat);
    }

    return list;
}</code>
登入後複製

在此更新的版本中,循環從 0 迭代到所需子列表數 (numLists)。這確保了函數從適當的位置開始分割。 此外,程式碼中使用了List<float> subLocat = new List<float>(locations); 建立了locations的副本,避免了原始清單被修改的問題。

以上是如何正確地將清單拆分為自訂大小的較小清單(例如 30 個或更少)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板