C# UWP实现将列表元素循环重复添加至空列表至指定长度
没问题,我来帮你搞定这个循环填充列表的需求!
首先得理清楚变量对应关系:你说的「第一个空列表需要填充到指定数量」「第二个列表是已有元素的源列表」,你示例里的变量名好像搞反啦,我下面会用更清晰的命名来写代码。
核心思路就是用取模运算实现循环遍历源列表,直到目标列表达到指定长度。直接上完整的可运行代码:
// 源列表:已经有元素的第二个列表 List<Product> sourceProducts = new List<Product> { new Product { Name = "商品1", Price = 10 }, new Product { Name = "商品2", Price = 20 }, new Product { Name = "商品3", Price = 30 } }; // 目标列表:需要填充的空列表(第一个列表) List<Product> targetList = new List<Product>(); // 设定目标列表需要达到的元素数量 int targetCount = 7; // 循环填充逻辑 for (int i = 0; i < targetCount; i++) { // 取模运算让索引在源列表长度内循环 int loopIndex = i % sourceProducts.Count; Product currentProduct = sourceProducts[loopIndex]; // 注意:如果Product是引用类型,直接Add会复用同一个对象引用 // 要是需要每个元素都是新实例,记得克隆对象,比如: // Product newProduct = new Product { Name = currentProduct.Name, Price = currentProduct.Price }; targetList.Add(currentProduct); }
关键细节解释:
i % sourceProducts.Count:这个取模操作是核心,当i增长到超过源列表长度时,会自动回到0,实现循环取元素的效果。比如源列表有3个元素,i=3时3%3=0,就会取第一个元素,i=4时4%3=1,取第二个元素,以此类推。- 引用类型注意事项:如果
Product是类(引用类型),直接添加源列表的元素会让目标列表和源列表指向同一个对象。如果需要目标列表里的每个元素都是独立的新对象,一定要手动创建新实例并复制属性,或者给Product类实现克隆方法。
内容的提问来源于stack exchange,提问作者positive perspective
相关产品推荐
相关产品推荐

