我正在尝试构建一个动态表达式树,如下所示:
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) 在我看来,List
基本上是使用实现的LinkedList
,而普通Array
是作为连续的块实现的.我一直使用,List
因为它在Generic
命名空间中,因为我认为它使用了动态内存分配 - 但我错了.
昨天我看到了List
使用Reflector 的实现,发现它实际上是一个T(T[]
)数组.Array.Copy
在操纵每个元素的同时有很多List
.例如,当您使用时Insert
,它将创建一个新内存并复制插入元素之前/之后的所有元素.所以在我看来,使用List
非常昂贵.
我也看到了SortedList
.我不知道为什么SortedList
还在其中实现了一个数组.难道你认为SortedList
使用数组会不会很糟糕,因为你需要在每次微调操作时对列表进行排序List
?
我也想知道为什么List
这么受欢迎,因为大多数人使用它而不是去LinkedList
.是否只是因为索引器的灵活性?
我想将 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) 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)
我将如何初始化h
和m
?
当我尝试这样做: 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)
我试图根据传递的参数选择一个查询,但不知何故查询在所有情况下都不起作用.
让我们说这是我的疑问:
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.
即使我尝试了案例,但即使它无法正常工作.任何人都可以给我简单的查询.
我一直在创建一个新的服务来下载大文件到客户端.我想在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) c# ×5
.net ×3
constructor ×1
lambda ×1
linked-list ×1
list ×1
sortedlist ×1
sql ×1
sql-server ×1
wcf ×1
web-services ×1
windows ×1