小编GST*_*STD的帖子

LINQ to DataSet,DataTable.AsEnumerable()无法识别

我是全新的LINQ,我试图DataSet用它来查询我.所以我按照这个例子写了这封信,它不起作用.

我知道我的DataTable需要.AsEnumerable最终,但它不被承认IDE.我究竟做错了什么?我错过了示例中未显示的引用/导入(这不是第一次MSDN示例不太正确),如果是,那么哪一个?还是完全不同的东西?

示例代码:

Imports System
Imports System.Linq
Imports System.Linq.Expressions
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.Common
Imports System.Globalization


//Fill the DataSet.
Dim ds As New DataSet()
ds.Locale = CultureInfo.InvariantCulture
//See the FillDataSet method in the Loading Data Into a DataSet topic.
FillDataSet(ds)

Dim products As DataTable = ds.Tables("Product")

Dim query = From product In products.AsEnumerable() _
            Select product
Console.WriteLine("Product Names:")
For Each p In query
    Console.WriteLine(p.Field(Of String)("Name")) …
Run Code Online (Sandbox Code Playgroud)

.net linq dataset visual-studio-2010

31
推荐指数
3
解决办法
5万
查看次数

有没有办法在.NET中重载属性

我已经做了很多方法重载,但现在我有一个实例,我想重载一个属性.Visual Studio中的IDE似乎允许它,因为我实际上可以设置两个重载,但是我得到一个错误,说它无效,因为它们的类型不同.我想我的语法中缺少一些东西?

我希望能够使用两个(或更多)不同的自定义类作为我的属性的类型.

Public Overloads Property myFlexibleProperty() As myCustomClass1
      Get
         Return _myFlexibleProperty1
      End Get
      Set(ByVal value As myCustomClass1)
         _myFlexibleProperty1 = value
      End Set
   End Property

   Public Overloads Property myFlexibleProperty() As myCustomClass2
      Get
         Return _myFlexibleProperty2
      End Get
      Set(ByVal value As myCustomClass2)
         _myFlexibleProperty2 = value
      End Set
   End Property
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现的所有帮助都与重载方法有关.尽管IDE让我这么做,我开始认为这是不可能的?

vb.net overloading properties

14
推荐指数
1
解决办法
8326
查看次数

如何使用List(Of T)作为WPF DataGrid的Itemssource?

我想快速在DataGrid中显示一个List(OF String)(动态),所以我想

myDataGrid.ItemsSource = myList
Run Code Online (Sandbox Code Playgroud)

这将是一种快速简便的方法,因为它适用于DataTable:

myDataGrid.ItemsSource = myDataTable.DefaultView
Run Code Online (Sandbox Code Playgroud)

我的DataGrid将AutoGenerateColumns属性设置为"True".对于数据表,这可以正常工作,但是当我将List(Of String)分配给ItemsSource时,我的列名称显示为'Length',显示的数据是整数,它们是List中每个String项中的字符数,而不是实际的String项.

我究竟做错了什么?

编辑

我的测试列表是这样创建的:

Dim myList As New List(Of String)
  For i As Int32 = 1 To 25
  myList.Add("Item #" & i)
Next
Run Code Online (Sandbox Code Playgroud)

以下两种方法产生完全相同的结果.

创建一个CollectionView:

Dim cv = CType(CollectionViewSource.GetDefaultView(myList), CollectionView)
DataGrid1.ItemsSource = cv
Run Code Online (Sandbox Code Playgroud)

只需使用List:

DataGrid1.ItemsSource = myList
Run Code Online (Sandbox Code Playgroud)

这两种方法都在DataGrid中显示单个列.该列标题为"长度",包含与每个字符串条目的长度匹配的整数.

编辑

'testalino'对VB的回答:

DataGrid1.ItemsSource = myList.Select(Function(s) New With {.Value = s}).ToList
Run Code Online (Sandbox Code Playgroud)

wpf datagrid list visual-studio-2010

6
推荐指数
1
解决办法
2723
查看次数