c#如何向一个集合中添加元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何向一个集合中添加元素相关的知识,希望对你有一定的参考价值。

C#.NET的集合主要位于System.Collections和System.Collections.Generic(泛型)这两个namespace中。

1、System.Collections

比如ArrayList,其Add(继承自接口IList)和AddRange方法可用于想集合中添加元素。

代码示例:

(1)Add:添加单个元素

ArrayList myAL = new ArrayList();
myAL.Add( "The" );
myAL.Add( "quick" );
myAL.Add( "brown" );
myAL.Add( "fox" );

(2)AddRange:添加实现了ICollection接口的一个集合的所有元素到指定集合的末尾

ArrayList myAL = new ArrayList();
myAL.Add( "The" );
myAL.Add( "quick" );
myAL.Add( "brown" );
myAL.Add( "fox" );

Queue myQueue = new Queue();
myQueue.Enqueue( "jumped" );
myQueue.Enqueue( "over" );
myQueue.Enqueue( "the" );
myQueue.Enqueue( "lazy" );
myQueue.Enqueue( "dog" );

myAL.AddRange( myQueue );

2、System.Collections.Generic

泛型同样也有Add(继承自ICollection<T>)和AddRange两个方法。

代码示例:

(1)Add:添加单个元素

List<string> dinosaurs = new List<string>();
dinosaurs.Add("Tyrannosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Mamenchisaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Compsognathus");

(2)AddRange:添加实现了接口IEnumerable<T>的一个泛型集合的所有元素到指定泛型集合末尾

string[] input =  "Brachiosaurus", "Amargasaurus", "Mamenchisaurus" ;
List<string> dinosaurs = new List<string>(input);
dinosaurs.AddRange(dinosaurs);


参考资料:

http://msdn.microsoft.com/zh-cn/library/system.collections(v=vs.100).aspx

http://msdn.microsoft.com/zh-cn/library/system.collections.generic(v=vs.100).aspx

参考技术A ArrayList集合里有一个add方法,你new一个集合对象,然后用add方法添加进去就行了。你可以创建一个数组,然后用个for循环遍历数组,添加到集合里面。 参考技术B ArrayList list = new ArrayList(); list.Add(obj); //或List<object> lst= new List<object>; lst.Add(obj);

如何使用循环根据条件向html标签添加属性

【中文标题】如何使用循环根据条件向html标签添加属性【英文标题】:How to add attribute to html tag based on condition using loop 【发布时间】:2021-09-06 01:44:51 【问题描述】:

我的任务是根据我正在迭代的集合的当前元素,从 &lt;select&gt; 元素中预先选择一些条目。

我们使用 JSF 来渲染 html,并且有一个循环遍历某个集合。在迭代过程中基于当前项,我必须在&lt;option&gt;标签中添加或不添加selected属性。

问题是selected 不带任何值,它只需要出现在标签中,以便在&lt;select&gt; 标签中预先选择项目。我试过selected=true/false,但没有用。所以这就是我尝试过的,JSF 返回解析异常:

<select value="#...">
    <c:forEach items="#registrationManagementBean.offersMap" var="entry" rowIndexVar="rowIndex">
        <option #registrationManagementBean.offerId == entry.key? 'selected' : '' value="#entry.key">#entry.value</option>
    </c:forEach>
</select>

这会产生:

Error Traced[line: 213] 元素类型“option”必须后跟属性规范“>”或“/>”。

当我尝试selected = #registrationManagementBean.offerId == entry.key? 'true' : 'false' 时,它可以正确呈现,但它不起作用。

有没有办法实现这个需求?

【问题讨论】:

【参考方案1】:

以下内容在 XML 中无效,这导致了您看到的错误:

<option selected>Value</option>

应该是:

<option selected="selected">Value</option>

话虽如此,在使用 JSF 时渲染自己的 select 元素是很奇怪的。以应有的方式使用 JSF,并使用 h:selectOneMenu 呈现 select 元素。使用 JSF 组件,值绑定和验证等内容很容易配置。

另见:

How to populate options of h:selectOneMenu from database? For HTML attributes with only one possible value, can the value be omitted?

【讨论】:

感谢您的回答。那么如何使用h:selectOneMenu 预先选择一些&lt;option&gt; 条目? 只需将其值设置为所需的值。

以上是关于c#如何向一个集合中添加元素的主要内容,如果未能解决你的问题,请参考以下文章

C#如何向List<>中添加多个元素?

如何向动态创建的 (C#) 元素添加“必需”属性?

Java 向数组中添加一个元素

如何使用 C# 在 XML 文档中添加新元素

Python面试必考重点之列表,元组和字典第二关——如何向集合中添加和删除元素,需要注意什么/如何求集合的并,交,集合之间是否还支持其他操作

有没有办法在 C# 中向数组中添加一些元素?