CodeSmith实用技巧(一):使用StringCollection

  StringCollection提供了一种集合的输入方式,在代码中,可以用Array的方式来引用。在使用这个类之前,在模版中我们必须添加对CodeSmith.CustomProperties程序集的引用:
<%@ Assembly Name="CodeSmith.CustomProperties" %>

添加完程序集之后,我们就可以使用StringCollection在脚本块中定义一个属性:

<%@ Property Name="List" Type="CodeSmith.CustomProperties.StringCollection" Category="Custom" Description="This is a sample StringCollection" %>

执行该模版时,这个属性将在属性窗体中显示为一个按钮:

单击按钮,将会弹出一个String Collection Editor对话框:

当然也可以直接在属性窗口中编辑StringCollection

模版代码如下:

 1<%@ CodeTemplate Language="C#" TargetLanguage="C#" %>
 2
 3<%@ Assembly Name="CodeSmith.CustomProperties" %>
 4
 5<%@ Property Name="List" Type="CodeSmith.CustomProperties.StringCollection" Category="Custom" Description="This is a sample StringCollection" %>
 6
 7using System;
 8namespace Test
 9
10{       
11         /// <summary>
12
13         ///     测试StringCollection
14
15         /// </summary>

16
17         public class Test
18
19         {
20
21                   public static void Main(string[] args)
22
23                   {
24
25                            <%for(int i = 0;i<List.Count;i++){%>
26
27                            Console.WriteLine(<%=List[i]%>);
28
29                            <%}
%>
30
31                   }

32
33         }

34
35}

36
37

生成后的代码:

 1using System;
 2
 3namespace Test
 4
 5{       
 6         /// <summary>
 7
 8         ///     测试StringCollection
 9
10         /// </summary>

11
12         public class Test
13
14         {
15
16                   public static void Main(string[] args)
17
18                   {
19
20                            Console.WriteLine(Apples);
21
22                            Console.WriteLine(Fish);
23
24                   }

25
26         }

27
28}

29
  StringCollection的重要属性和方法:

公共属性

名称

描述

Count

获取StringCollection中包含的字符串的数目

IsReadOnly

获取用于指示StringCollection是否为只读的值

IsSynchronized

获取一个值,该值指示对StringCollection 的访问是否为同步的(线程安全的)

Item

获取或设置指定索引处的元素。在C# 中,该属性为 StringCollection 类的索引器

SyncRoot

获取可用于同步对StringCollection 的访问的对象

公共方法

名称

描述

Add

将字符串添加到 StringCollection 的末尾

AddRange

将字符串数组的元素复制到 StringCollection 的末尾

Clear

移除 StringCollection 中的所有字符串

Contains

确定指定的字符串是否在 StringCollection

CopyTo

从目标数组的指定索引处开始,将全部 StringCollection 值复制到一维字符串数组中

IndexOf

搜索指定的字符串并返回 StringCollection 内的第一个匹配项的从零开始的索引

Insert

将字符串插入 StringCollection 中的指定索引处

Remove

StringCollection 中移除特定字符串的第一个匹配项

RemoveAt

移除 StringCollection 的指定索引处的字符串

 

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2005-12-26 16:00 TerryLee 阅读(3761) 评论(2)  编辑 收藏 网摘 所属分类: [13]  代码生成

  回复  引用    
#1楼 2006-12-02 11:46 | 想学的人 [未注册用户]
请问楼主,我想把自己做的项都列出来让人家选择应该怎么办
  回复  引用  查看    
#2楼 2008-10-09 09:50 | 鹰击长空      
当输入的内容多时,如何让String Collection Editor对话框出现滚动条




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-12-28 08:28 编辑过
Google站内搜索

相关文章:

相关链接: