小编Gan*_*sha的帖子

Linq中的多个WHERE子句

我是LINQ的新手,想知道如何执行多个where子句.这就是我想要实现的目的:通过过滤掉某些用户名来返回记录.我尝试了下面的代码但没有按预期工作.

DataTable tempData = (DataTable)grdUsageRecords.DataSource;
var query = from r in tempData.AsEnumerable()
            where ((r.Field<string>("UserName") != "XXXX") || (r.Field<string>("UserName") != "XXXX"))                            
            select r;    

            DataTable newDT = query.CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)

我在这里先向您的帮助表示感谢!!!

linq linq-to-sql

71
推荐指数
4
解决办法
19万
查看次数

LINQ to DataSet,由多列区分

只是想检查是否有多种方法可以区分多个列.提前致谢!!!

顺便说一句,我在这里找到了一个很棒的LINQ扩展,但需要一些指导才能将它用于多列

linq distinct linq-to-dataset

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

C#通用列表联盟问题

我正在尝试使用"联盟"合并2个列表,因此我摆脱了重复.以下是示例代码:

public class SomeDetail
{
    public string SomeValue1 { get; set; }
    public string SomeValue2  { get; set; }
    public string SomeDate { get; set; }
}

public class SomeDetailComparer : IEqualityComparer<SomeDetail>
{
    bool IEqualityComparer<SomeDetail>.Equals(SomeDetail x, SomeDetail y)
    {
        // Check whether the compared objects reference the same data.        
        if (Object.ReferenceEquals(x, y))
            return true;
        // Check whether any of the compared objects is null.        
        if (Object.ReferenceEquals(x, null) || Object.ReferenceEquals(y, null))
            return false;
        return x.SomeValue1 == y.SomeValue1 && x.SomeValue2 == y.SomeValue2; …
Run Code Online (Sandbox Code Playgroud)

c# linq generics

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

LINQ to XML GroupBy

我想使用LINQ将输入XML转换为输出XML,方法是在"Summary"字段上执行GROUPBY并将Balance字段向上扩展.

输入XML:

<Root>
  <Account>
    <Summary>Checking</Summary>
    <Comprehensive>Interest Checking Account</Comprehensive>
    <Currency>Dollar</Currency>
    <Balance>10000000.000000</Balance>
  </Account>
  <Account>
    <Summary>Savings</Summary>
    <Comprehensive>Market Account</Comprehensive>
    <Currency>Dollar</Currency>
    <Balance>20000000.000000</Balance>
  </Account>
  <Account>
    <Summary>Checking</Summary>
    <Comprehensive>Interest Checking Account</Comprehensive>
    <Currency>Dollar</Currency>
    <Balance>50000000.000000</Balance>
  </Account>  
</Root>
Run Code Online (Sandbox Code Playgroud)

输出XML:

<Root>
  <Account>
    <Summary>Checking</Summary>
    <Comprehensive>Interest Checking Account</Comprehensive>
    <Currency>Dollar</Currency>
    <Balance>60000000.000000</Balance>
  </Account>
  <Account>
    <Summary>Savings</Summary>
    <Comprehensive>Market Account</Comprehensive>
    <Currency>Dollar</Currency>
    <Balance>20000000.000000</Balance>
  </Account>
</Root>
Run Code Online (Sandbox Code Playgroud)

我试过这个,但无法获取节点/元素:

XElement groupData = new XElement("Root",
    chartData.Elements().GroupBy(x => x.Element("Summary").Value).
        Select(g => new XElement("Account", g.Key, g.Elements("Comprehensive"),
            g.Elements("Currency"),
            g.Sum(
                s =>
                (decimal)
                s.Element("Balance")))));
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.提前致谢.

group-by linq-to-xml

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

单元测试 - 模拟 - 可覆盖问题 - 扩展方法

我正在尝试为以下 Azure 搜索方法编写单元测试:

public async Task Write(ISearchIndexClient indexClient, Search search)
{
    await UploadContents(indexClient, search.SearchContents);
}

private static async Task UploadContents(ISearchIndexClient indexClient, IReadOnlyCollection<dynamic> searchContents) => await Task.Run(() => indexClient.Documents.Index(IndexBatch.Upload(searchContents)));
Run Code Online (Sandbox Code Playgroud)

单元测试代码 1:

public async Task Write_Success()
{
    var searchIndexClientMock = new Mock<ISearchIndexClient>();
    searchIndexClientMock
        .Setup(x => x.Documents.Index(It.IsAny<IndexBatch<Document>>(), It.IsAny<SearchRequestOptions>()))
        .Returns(It.IsAny<DocumentIndexResult>()).Callback(() => IndexBatch.Upload(It.IsAny<IEnumerable<Document>>()));

    var pushFunction = new SearchIndexWriter();

    Search search = new Search();

    await pushFunction.Write(searchIndexClientMock.Object, search);

    //Assert, Verify checks
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

消息:System.NotSupportedException:不支持的表达式:... => ....Index(It.IsAny>(), It.IsAny()) 扩展方法(此处:DocumentsOperationsExtensions.Index)不能用于设置/验证表达式。

单元测试代码 2:

public async Task Write_Success()
{
    var searchIndexClientMock …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq mocking azure

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

C#List <string>"包含"问题

有没有一种简单的方法,通过LINQ或Generics,来查明一个List中的元素是否都在另一个List中可用.

我目前正在使用Intersect来检查这个.

例如

List<string> list1; //{ 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }

List<string> list2; //{ 1, 3, 9 }

list1.Contains(list2) == true
Run Code Online (Sandbox Code Playgroud)

提前致谢

.net generics list

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