小编abh*_*hek的帖子

构建动态表达式树时出现问题

我正在尝试构建一个动态表达式树,如下所示:

 Func<IEnumerable<int>, int, bool> dividesectionmethod = (x, y) =>
            {
                int nos1 = 0;
                int nos2 = 0;
                foreach (int i in x)
                {
                    if (i <= y)
                        nos1++;
                    else
                        nos2++;
                }
                return nos1 > nos2;
            };
Run Code Online (Sandbox Code Playgroud)

为此我正在使用:

 ParameterExpression enumerableExpression = Expression.Parameter(typeof(IEnumerable<int>), "x");
            ParameterExpression intexpression = Expression.Parameter(typeof(int), "y");

            ParameterExpression localvarnos1 = Expression.Variable(typeof(int), "nos1");
            ParameterExpression localvarnos2 = Expression.Variable(typeof(int), "nos2");
            ConstantExpression zeroConstantintval = Expression.Constant(0);
            BinaryExpression bexplocalnos1 = Expression.Assign(localvarnos1, zeroConstantintval);
            BinaryExpression bexplocalnos2 = Expression.Assign(localvarnos2, zeroConstantintval);

            //As Expression does not support Foreach we need …
Run Code Online (Sandbox Code Playgroud)

.net c# lambda

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

为什么SortedList和List使用数组,为什么LinkedList没用多少?

在我看来,List基本上是使用实现的LinkedList,而普通Array是作为连续的块实现的.我一直使用,List因为它在Generic命名空间中,因为我认为它使用了动态内存分配 - 但我错了.

昨天我看到了List使用Reflector 的实现,发现它实际上是一个T(T[])数组.Array.Copy在操纵每个元素的同时有很多List.例如,当您使用时Insert,它将创建一个新内存并复制插入元素之前/之后的所有元素.所以在我看来,使用List非常昂贵.

我也看到了SortedList.我不知道为什么SortedList还在其中实现了一个数组.难道你认为SortedList使用数组会不会很糟糕,因为你需要在每次微调操作时对列表进行排序List

我也想知道为什么List这么受欢迎,因为大多数人使用它而不是去LinkedList.是否只是因为索引器的灵活性?

c# linked-list list sortedlist

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

如何使用 .net 在 Amzon 中使用 sell-partner-api 加密和上传数据

我想将 sell-partner-api-docs 用于 .Net 。我从下面的 url 中找到了一个参考,但这是使用 Java 示例编码:https : //github.com/amzn/ sell-partner-api-docs/blob/main/guides/use-case-guides/ feeds-api- use -case-guide-2020-09-04.md#step-2-encrypt-and-upload-the-feed-data

但我想使用 .Net 编码可以任何人建议以下 java 编码部分的 .Net 编码

    import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.nio.charset.StandardCharsets;

import com.amazon.spapi.documents.UploadHelper;
import com.amazon.spapi.documents.UploadSpecification;
import com.amazon.spapi.documents.exception.CryptoException;
import com.amazon.spapi.documents.exception.HttpResponseException;
import com.amazon.spapi.documents.impl.AESCryptoStreamFactory;

/* We want to maintain encryption at rest, so do not write unencrypted data to disk.  This is bad:
InputStream source = new FileInputStream(new File("/path/to/myFeed.xml"));

Instead, if your data can fit in memory, you can …
Run Code Online (Sandbox Code Playgroud)

.net c# amazon-web-services amazon-product-api

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

c#:初学者CLASS构造函数问题

public class ElapsedTime
{
    public int hours;
    public int minutes;
    public void ElapsedTime(int h, int m)
    {
        hours = h;
        minutes = m;
    }
}
Run Code Online (Sandbox Code Playgroud)

从另一个事件我这样做:

    ElapsedTime BeginningTime = new ElapsedTime();
Run Code Online (Sandbox Code Playgroud)

我将如何初始化hm

当我尝试这样做: BeginningTime.ElapsedTime(7, 7);

它给了我这个错误:

错误1'ElapsedTime':成员名称不能与其封闭类型相同

我想要的是一个带有接受初始化值的构造函数的类.我希望能够打电话给它.

更新:

我现在有 :

 public class ElapsedTime
        {
            private int hours;
            private int minutes;
            public ElapsedTime(int h, int m)
            {
                hours = h;
                minutes = m;
            }
        }
Run Code Online (Sandbox Code Playgroud)

它给了我同样的信息 public ElapsedTime(int h, int m)

c# constructor

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

Null的参数化查询

我试图根据传递的参数选择一个查询,但不知何故查询在所有情况下都不起作用.

让我们说这是我的疑问:

SELECT * FROM EMPLOYEE WHERE AGE = @pAge
Run Code Online (Sandbox Code Playgroud)

现在让我们考虑一下这个表

EmpId | EmpName | Age 
1     | Abhishek | 30  
2     | Surajit  | NULL  
3     | Utpal    | 44
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我传递@pAge = NULL时,它应该选择Surajit,当我传递值时,它应该选择匹配指定的值.看起来很简单,但我没有任何选择尝试.第一个查询不起作用,因为NULL!= NULL.

让我们看看我尝试过:

SELECT * FROM EMPLOYEE WHERE (@pAge is null Or AGE = @pAge)
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为当我传递null它选择一切.

SELECT * FROM EMPLOYEE WHERE IsNull(@pAge, 0) = Age
Run Code Online (Sandbox Code Playgroud)

但它不起作用......因为年龄!= 0.

即使我尝试了案例,但即使它无法正常工作.任何人都可以给我简单的查询.

sql sql-server

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

WCF和Windows服务中的大文件下载

我一直在创建一个新的服务来下载大文件到客户端.我想在Windows服务中托管该服务.在服务中我写道:

 public class FileTransferService : IFileTransferService
    {
        private string ConfigPath
        {
            get
            {
                return ConfigurationSettings.AppSettings["DownloadPath"];
            }
        }
        private FileStream GetFileStream(string file)
        {

            string filePath = Path.Combine(this.ConfigPath, file);
            FileInfo fileInfo = new FileInfo(filePath);

            if (!fileInfo.Exists)
                throw new FileNotFoundException("File not found", file);

            return new FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        }

        public RemoteFileInfo DownloadFile(DownloadRequest request)
        {
            FileStream stream = this.GetFileStream(request.FileName);

            RemoteFileInfo result = new RemoteFileInfo();
            result.FileName = request.FileName;
            result.Length = stream.Length;
            result.FileByteStream = stream;
            return result;
        }
    }
Run Code Online (Sandbox Code Playgroud)

界面看起来像:

 [ServiceContract]
    public interface IFileTransferService
    {
        [OperationContract] …
Run Code Online (Sandbox Code Playgroud)

.net c# windows wcf web-services

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