创建CSV String vb.net的ReadOnly属性

时间:2014-05-23 12:38:41

标签: vb.net class properties

获取List(Of objects)和添加ReadOnly属性的最佳方法是什么,该属性显示对象的一个​​属性的csv列表?有没有一种方法可以通过指定“名称”将该列表转换为字符串。

实施例

对象=新项目()
Object.ID = 1
Object.Name =“测试”
li.Add(对象)

对象=新项目()
Object.ID = 2
Object.Name =“测试2”
li.Add(对象)

对象=新项目()
Object.ID = 3
Object.Name =“测试3”
li.Add(对象)



我想在每个人都需要在这里完成或有更好的方法来做这件事吗?

从列表值中返回“测试,测试2,测试3” 从本质上讲,这是我想要做的事情,但我想知道是否有更好的方法来做到这一点。:

Public ReadOnly Property ItemList() As String
        Get
            Dim returnvalue As String = String.Empty
            If Items.Count > 0 Then
                For Each Item In Items
                    returnvalue = returnvalue & Item.Name & ", "
                Next
                Return Left(returnvalue, returnvalue.Length - 2)
            Else
                Return ""
            End If
        End Get
    End Property

1 个答案:

答案 0 :(得分:0)

我有这个链接分享,解决方案是类似的,可能需要一些tweeks。从C#到VB的转换非常简单,可以向您显示进行一些更改的位置。 Write C# Lists of objects in CSV file

但是,我相信你的代码很好,除了你如何创建你的csv字符串。 我建议使用字符串生成器。这样,如果项目存在,则构建新行。否则,你没有。这将使您无需删除(左)最后插入的逗号。您还希望捕获列表中的最后一项,并在那里避免使用逗号。

作为一个例子:

Dim sb As StringBuilder
--if not last item then --
sb.AppendFormat ("{0},{1}",Item.Name,",")
--else this is last item--
sb.AppendFormat ("{0},",Item.Name)

我分享的链接是一个更好的解决方案。我的例子只是为了让你的方法更可靠。

或者,如果您将对象列表更改为数组或字符串列表...

Dim sampleList = New List(Of String)() From { _
  "lala", _
  "lulu", _
  "lele" _
}
Dim data = String.Join(",", sampleList)