小编Cat*_*key的帖子

循环通过LINQ查询列(不是行)

是否有可能,如果是这样,循环LINQ查询的结果?

像这样的东西:

var results= from a in dt.AsEnumerable()
                    where a.Field<int>("id") == i 
                    select new 
                    {
                       id= a.Field<int>("id"),
                       a= a.Field<double>("a"),
                       b = a.Field<double>("b")
                    };

IEnumerable<string> colNames = results.First().GetType().GetProperties()
                                                        .Select(p => p.Name);

string[] columns = colNames.ToArray();

int i = 0;
foreach (var row in results)
{
    for (int i = 0; i < columns.Count(); i++)
    {
        string foobar = (string)row[columns[i]];
        i++;
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,我想复制以下类型的功能:

DataRow dr = new DataRow();
string foobar = dr[columns[i];
Run Code Online (Sandbox Code Playgroud)

在此先感谢所有人.

c# linq

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

在使用Java的多重选择中设置选定的索引

我不确定为什么这行不通,并希望在此方面有所帮助!是的,我已经看过这个

我试图在一个选择元素中设置多个选项,使用包含我想要选择的值的数组进行选择,并在数组和选择元素中的选项之间进行插入。请在下面找到代码:

// value is the array.
for (var j = 0; j < value.length; j++) {
    for (var i = 0; i < el.length; i++) {
        if (el[i].text == value[j]) {
            el[i].selected = true;
            alert("option should be selected");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

完成这些循环后,即使alert()触发,也不会选择任何内容。

任何想法都欢迎!

谢谢

厘米

PS(不确定代码格式化发生了什么)。

编辑:全功能

    if (CheckVariableIsArray(value) == true) {
        if (value.length > 1) { // Multiple selections are made, not just a sinle one.
            var checkBoxEl = document.getElementById(cbxElement);
            checkBoxEl.checked = "checked";
            checkBoxEl.onchange(); // Call function …
Run Code Online (Sandbox Code Playgroud)

javascript options multi-select

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

将2 List <string>与LIKE子句进行比较

我有2个列表,一个是文件名列表,第二个是文件名存根列表,我想从第一个列表中选择文件名就像文件名存根一样的所有内容.

List<string> files = new List<string>() {"a.txt", "b.txt", "c.txt"};
List<string> fileStub = new List<string>() {"a", "b", "c"};
Run Code Online (Sandbox Code Playgroud)

该查询将返回第一个列表中的所有记录.

提前致谢.

c# linq list

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

MS SQL Float十进制比较问题

我正在规范化数据库,其中一部分涉及将列从一个表转换FLOAT为a DECIMAL(28,18).然后,当我尝试将此已转换的列连接回源列时,在某些情况下它不会返回任何结果.

它似乎与它转变的方式有关.例如, FLOAT转换为a DECIMAL(28,18)产生:

51.051643260000006000
Run Code Online (Sandbox Code Playgroud)

原来FLOAT

51.05164326
Run Code Online (Sandbox Code Playgroud)

我尝试了各种修改方法FLOAT,但这些方法都没有:

CAST(51.05164326 AS DECIMAL(28,18)) = 51.051643260000000000
STR(51.05164326 , 28,18) = 51.0516432599999990
Run Code Online (Sandbox Code Playgroud)

转换的原因是由于提高了这些字段的准确性.

有没有人有一个一致的策略来转换这些数字,并能够确保后续的连接工作?

提前致谢

厘米

t-sql comparison decimal

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

具有多个条件的LINT On DataTables

这个查询似乎并不高兴.任何人的想法?

var results = from a in previousQuery
              join b in dtCounties.AsEnumerable()
              on new { a.CountyCode, a.StateCode } equals new { 
                  b.Field<string>("COUNTYCODE"),
                  b.Field<string>("StateCode") 
              }
              where b.Field<bool>("TrueOrFalse") == true
              select new
              {
                  CountyCode = a.CountyCode,
                  TrueOrFalse= b.Field<bool>("TrueOrFalse"),
                  Sum= a.Sum
              };
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

"无效的匿名类型成员声明符.必须使用成员赋值,简单名称或成员访问声明匿名类型成员."

对于连接右侧的2列(即 b.Field<string>("COUNTYCODE")b.Field<string>("StateCode")).

c# linq datatable

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

合并可能为空的LINQ查询结果

我使用Linq从4个级联下拉菜单中返回ID.

用户可能已从1个或所有菜单中选择了1个或多个值.从用户选择中,我然后查询DataTable的文本列以获取代表ID.

如果用户从第4(和最低级别)下拉菜单中进行选择,那么他们将从上述所有选项中进行选择.

如果用户从菜单1中选择"X",从菜单2中选择"Y",而在其他人中没有任何内容我希望看到results110行,其中"X"存在于[Col_1]中,然后将查询说明results2[Col_2]中存在"Y"的5行.

编辑 守则(基本形式)

var results1 = 
    from a in dt.AsEnumerable()
    where stringArray1.Contains([Col1])
    select a;


var results2 = 
    from a in results1
    where stringArray2.Contains([Col2])
    select a;

var results3 = 
    from a in results2
    where stringArray3.Contains([Col3])
    select a;

var results4 = 
    from a in results3
    where stringArray4.Contains([Col4])
    select a;

var results = results4 ?? results3 ?? results2 ?? results1;
Run Code Online (Sandbox Code Playgroud)

results4取决于来自results3,results3打开results2results2打开的结果results1.

它可能results4 - 2 …

c# linq coalesce null-coalescing-operator

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