小编use*_*060的帖子

如何将未知类型的通用列表传递给类构造函数

下面的代码段对于给定的方法工作得很好但我想在类构造期间做同样的事情.怎么做?

public static DataTable ToDataTable<T>(IList<T> data)
Run Code Online (Sandbox Code Playgroud)

想要这样的东西......但构造函数不喜欢这个<T>(IList<T>部分.

public class DTloader
{
    PropertyDescriptorCollection props;
    DataTable dataTable = new DataTable();
    public DTloader<T>(IList<T> data)
    {
        props = TypeDescriptor.GetProperties(typeof(T));
        for (int i = 0; i < props.Count; i++)
        {
            PropertyDescriptor prop = props[i];
            dataTable.Columns.Add(prop.Name, prop.PropertyType);
        }
    }
Run Code Online (Sandbox Code Playgroud)

.......

c#

2
推荐指数
1
解决办法
471
查看次数

datatable.AsEnumerable 不起作用(基本示例)

Dim x = From row In f_table.AsEnumerable()
                    Select row("Crop")
Run Code Online (Sandbox Code Playgroud)

据我了解,“f_table.AsEnumerable”应该使我的搜索对象(在本例中为“row”)成为数据行对象。这个简单的示例运行时没有任何异常,但没有找到任何条目(如果我切换到从 f_table 获取的数据行数组,而不是 f_table.AsEnumerable,则此搜索有效)。

为什么 AsEnumerable 不允许搜索表的行的任何想法?

编辑/添加:以下是我所拥有的,其中“emptyrows”是 f_table 中行的子集数组。

Dim emptyrows_grouped = From row In emptyrows
                                Order By row("Date"), row("Time")
                                Group By New With {.date = row("Date")}.date,
                                         New With {.crop = row("Crop")}.crop
                                Into Group
Run Code Online (Sandbox Code Playgroud)

我想要的是这种形式:

Dim emptyrows_grouped = From row In f_table.AsEnumerable
                                Where row.Field(Of String)("SamplePosition") Like "Emp%"
                                Order By row("Date"), row("Time")
                                Group By New With {.date = row("Date")}.date,
                                         New With {.crop = row("Crop")}.crop
                                Into Group
Run Code Online (Sandbox Code Playgroud)

linq vb.net asenumerable

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

将 for 循环转换为列表理解

我有一个for循环,它将字符串列表中每个元素的子字符串与另一个字符串列表中的元素进行比较。

mylist = []
for x in list1:
    mat = False
    for y in list2:
        if x[:-14] in y:
            mat = True
    if not mat:
        mylist.append(x)
Run Code Online (Sandbox Code Playgroud)

不过,我想将其放入列表理解中(for 循环并不符合我的口味),但无法找到一种方法来计算mat.

我尝试过以下变体:

 mylist = [x for x in list1 if x[:-14] in list2]
Run Code Online (Sandbox Code Playgroud)

但这与原始循环的逻辑不同。有没有办法将原来的 for 循环改造成列表理解?

python list-comprehension list

-2
推荐指数
1
解决办法
1722
查看次数

标签 统计

asenumerable ×1

c# ×1

linq ×1

list ×1

list-comprehension ×1

python ×1

vb.net ×1