# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > VB.NET >  error  Value of type '1-dimensional array of String' cannot be converted to 'String'

## saeed_sho

سلام
شرمنده میدونم سؤالم خیلی ساده ست اما من همیشه موضوعات سخت رو حل میکنم و با مسائل ساده مشکل پیدا میکنم
من میخوام یک آرایه داشته باشم که در هر index اون یک آرایه بزارم اما ارور میده این کدمه:
Dim strDesNo1() As String = New String() {txtDesNo1_multiple.Text}

        Dim strDesNo2() As String = New String() {txtDesNo2_multiple.Text}

        Dim strDesNos() As String
        strDesNos(0) = strDesNo1
        strDesNos(1) = strDesNo2
از دو خط آخر این ارور رو میگیره:
Value of type '1-dimensional array of String' cannot be converted to 'String'.    
ممنون میشم راهنمایی کنید

----------


## saeed_sho

فکر کنم با این کد مشکل حل بشه
Dim strDesNo1() As String = New String() {txtDesNo1_multiple.Text}

        Dim strDesNo2() As String = New String() {txtDesNo2_multiple.Text}

        Dim strArray As New ArrayList()
        strArray.Add(strDesNo1)
        strArray.Add(strDesNo2)

        Dim strDesNos() As String = strArray.ToArray()

----------


## مهرداد صفا

سلام 
یک خانه از یک آرایه string فقط میتواند یک string در خود نگهدارد. برای این کار میتوان از یک آرایه دو بعدی استفاده کرد که در هر خانه از ستون اول آن میتوان یک آرایه دیگر را نگهداری کرد. کد را به صورت زیر میتوان استفاده کرد.
Dim strDesNo2() As String = New String() {txtDesNo2_multiple.Text}

Dim strDesNos()() AsStringstrDesNos(0) = strDesNo1
strDesNos(1) = strDesNo2

----------


## saeed_sho

اون کدهایی که در پست دو گفتم کار میکنه تست کردم ارور میده 
کدهایی هم که دوستمون در پست قبلی گفتن چون در تگ نیست معلوم نیست چی نوشته
لطفا راهنمایی کنید

----------


## saeed_sho

هیچ کس نمیخواد کمک کنه؟

----------


## saeed_sho

چطوری میشه یه آرایه داشت که در هر ایندکس اون یک آرایه ذخیره کرد؟
لطفا راهنمایی کنید

----------


## salehbagheri

چرا از Generic List ها استفاده نمی کنید؟ مایکروسافت این همه زحمت کشیده تا شما بجای استفاده از پراید، سوار لامبورگینی بشید، باز هم نمی دونم چرا اصرار بر استفاده از آرایه دارید!

به راحتی تمام میتونید یک لیست پر از لیست ایجاد کنید و به راحتی با استفاده از LINQ و ... از اطلاعات اون استفاده کنید.


Dim MyListOfList As List(Of List(Of String))


با این تعریف شما یک لیست دارید که در هر Index آن میتونید یک لیست دیگر از داده های رشته ای ذخیره کنید!

----------


## saeed_sho

از توجهتون ممنونم
حتما این راه رو امتحان میکنم
اما در مورد اصرار من برای استفاده از آرایه باید بگم که من دارم یه برنامه وب مینویسم که پیامک ارسال کنه و وب سرویس یه متد داره که یکی از پارامترهاش آرایه ست و برای اون میخوام وگرنه کی بدش میاد به قول شما به جای پراید سوار لامبورگینی بشه

----------


## saeed_sho

حالا محتویات این لیست رو چطوری میشه ریخت توی آرایه؟
من اینو میزنم ارور میده
dim strDesNos() as string = myListOfList.ToArray()

----------


## saeed_sho

چطوری میشه محتویات اون لیستی که آقای باقری در پست 7 گفتن رو ریخت در یک آرایه؟

----------


## alimanam

با سلام




> چطوری میشه محتویات اون لیستی که آقای باقری در پست 7 گفتن رو ریخت در یک آرایه؟


همانطور که آقای باقری گفتن کار با Generic List ها به مراتب آسان تر و بهتره . میتونین با استفاده از کدی که براتون نوشتم به آرایه مورد نظر خودتون دسترسی داشته باشید.


    Dim listOfList = New List(Of List(Of String))(New List(Of String)() {New List(Of String)(New String() {t1.Text}), New List(Of String)(New String() {t2.Text})})
Dim list = New List(Of String)(New String() {})
Dim result = list.Concat(listOfList.SelectMany(Function(x) x))

For Each x In result
    MsgBox(x)
Next x

' Or

MsgBox(result(0)) ' Return t1.text value !
MsgBox(result(1)) ' Return t2.text value !



موفق باشید./

----------


## h_assefi

شاید بهتر باشه از jagged array ها استفاده کنی 
 jagged array آرایه ای از آرایه هاست و هر ردیف با ردیف بعدی می تونه طول متفاوتی داشته باشه و حتما نباید یکی باشند
هنگام تعریف این نوع آرایه شما تعداد ردیف ها را مشخص می کنید. و هر ردیف هم یک آرایه را نگه داری می کند.
روش تعریف Jagged array به صورت زیر هستش:

Dim n7 As Integer()() = {New Integer() {2, 4, 6}, New Integer() {1, 3, 5, 7, 9}}
Dim n9()() As Integer = {New Integer() {2, 4, 6}, New Integer() {1, 3, 5, 7, 9}}

----------


## hakim22

بابا از ArrayList استفاده کنید و خلاص !

----------


## saeed_sho

خب بگو چطوری؟

----------

