小编AAA*_*ddd的帖子

是否有可能将`FileInfo`转换为`IEnumerable <FileInfo>`

是否有任何可能转换FileInfoIEnumerable<FileInfo>,因为我需要发送IEnumerable<FileInfo>作为参数传递给外部库?

var latestFile = new DirectoryInfo(filePath).EnumerateFiles(fileType).Select(fl =>
    {
        fl.Refresh();
        return fl;
    }).OrderByDescending(fi => fi.LastWriteTimeUtc).FirstOrDefault();

IEnumerable<FileInfo> Y = latestFile;
Run Code Online (Sandbox Code Playgroud)

c#

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

LINQ for CRM如何在where子句中使用C#list

我需要在LINQ where子句中使用C#列表.我可以在where子句中使用一个值进行查询,请指导如何在LINQ查询中使用C#列表.

以下是我的代码:

var usersList= new List<string>();

usersList.Add("User1");
usersList.Add("User2");

(from u in UserSet
where u.FullName.Equals("any user from usersList")
select u.FullName).Take(3).Dump();
Run Code Online (Sandbox Code Playgroud)

基本上如何告诉LINQ检查每个值 usersList

编辑:我正在做这个LINQ for CRM

谢谢

.net c# linq dynamics-crm linqpad

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

有没有办法修改这个循环?

所以我试图让这个代码测试用户输入的单词中是否有某些字母,并确定该用户输入中有多少该特定字母。

目前aCounterbCounter如果我输入这个词,我会得到 4 for和 4 for "aabb"

我如何做到这一点,例如,如果有 2 个 a 并且它已经测试了2 次,则测试字母的循环会"a"停止"a"

static int aCounter, bCounter;

public static void Main (string[] args)
{
    Console.Write("Enter the secret word: ");
    string word = Console.ReadLine();

    for(int i = 0; word.Length > i; i++)
    {       
        if (word.Count(letter => letter == 'a') > 0)
        {
            Console.WriteLine("\nThe word contains a");
            aCounter++;
        }

        if (word.Count(letter => letter == 'b') > 0)
        {
            Console.WriteLine("\nThe word …
Run Code Online (Sandbox Code Playgroud)

c#

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

当我使用 ToListAsync 方法时线程不起作用

我有一个EF Core程序。

代码

class EagerLoading
{
    public async void load()
    {
        Console.WriteLine("a");
        var teams = await loadTeamsAsync();
        Console.WriteLine("c");
    }
    public async Task<List<Team>> loadTeamsAsync()
    {
        Console.WriteLine("b");
        using (var context = new SchoolContext())
        {
            return await context.teams.
                ToListAsync();
        }
    }
}
//Entry method
static void Main(string[] args)
{
    new EagerLoading().load();
}
Run Code Online (Sandbox Code Playgroud)

输出

a
b

Run Code Online (Sandbox Code Playgroud)

预期的

a
b
c
Run Code Online (Sandbox Code Playgroud)

我错在哪里?为什么Console.WriteLine("c");不执行?

c# async-await .net-core ef-core-3.1

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

仅用1个空格替换非字母数字字符和多个空格

我试图用一个单独的空间替换所有"非字母数字字符"和"多个空格"

我有2个工作解决方案,但我想知道它是否有可能有效地结合它们?

特定

var str = "ASD S-DF 2134 4@# 4    234234 #$)(u SD";
var options = RegexOptions.None;
Run Code Online (Sandbox Code Playgroud)

非字母数字字符的解决方案

var rgxAlpha = new Regex("[^a-zA-Z0-9]");
str = rgxAlpha.Replace(str, " ", options);
Run Code Online (Sandbox Code Playgroud)

多个空间的解决方案

var regexSpace = new Regex(@"[ ]{2,}", options);
str = regexSpace.Replace(str, " ");
Run Code Online (Sandbox Code Playgroud)

预期结果

ASD S DF 2134 4 4 234234 u SD
Run Code Online (Sandbox Code Playgroud)

c# regex

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

64位注册表项未由32位应用程序更新

注册表项未在C#中提到的路径更新

string path = @"Software\Microsoft\Windows NT\CurrentVersion\Windows\"; 
RegistryKey myKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(path, true);
myKey.SetValue("USERProcessHandleQuota", 50000, RegistryValueKind.DWord); 
myKey.Close();
Run Code Online (Sandbox Code Playgroud)

而不是在下面的路径更新给定的路径值: -

@"Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\";
Run Code Online (Sandbox Code Playgroud)

我的机器是64位,我运行的应用程序是32位.

请建议如何更新,即在上述路径地址的值Software\Microsoft,而不是Software\wow6432node.

c#

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

如何告诉实体框架忽略数据库为插入或更新生成值?

我是新来Entity FrameworkC#

我的表中有一个计算列table1(示例)。我将根据其他列值计算计算列值。我不想Entity Framework在执行插入/更新操作时包括计算列。我怎样才能EF避免那个特定的列。但我想手动设置该特定列的值。

我搜索了相同的内容,但无法得到我的问题的答案。请帮助我,并提前致谢。

c# entity-framework

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

替换字符串中的单个字符实例,保持多个字符不变

我如何将取代periodsspaces,但保留...

string test = "This.is.a.test...";

test = test.Replace(".", " ");
Run Code Online (Sandbox Code Playgroud)

http://rextester.com/DLEHI1253

c# regex

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

在条件语句中使用 null 条件运算符时,如何处理 null 情况?

假设我这里有以下代码:

static void Main(string[] args)
{
   StringBuilder[] s = new StringBuilder[3];
   if (s[0]?.Length > 0)
   {
       Console.WriteLine("hi");
   }
}
Run Code Online (Sandbox Code Playgroud)

我的理解是 if 语句中的表达式必须是布尔表达式。布尔表达式(我的理解可能是错的)是计算结果为 true 或 false 的表达式。

在这种情况下,null 条件运算符将返回 null,因为引用类型变量数组中元素的默认值为 null。因此,这个 if 语句等价于

bool? x = null;
if (x)
{ 
   // do cool things here */ 
}
Run Code Online (Sandbox Code Playgroud)

但这给了我一个语法错误:无法将 null 转换为 bool。

那么,上面的 StringBuilder 示例是如何工作的呢?我的理解是,上述代码的更好方法应该是将其与空合并运算符结合起来,如下所示:

if (s[0]?.Length > 0 ?? false) {}
Run Code Online (Sandbox Code Playgroud)

谢谢大家:)

.net c#

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

根据项目长度拆分列表<T>

我有一个列表,Message以及他们的项目长度size,this.Size = JsonConvert.SerializeObject(Data).Length;.

public class Data
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Message
{
    public Data Data { get; set; }
    public int Size { get; set; }

    public Message(Data Data)
    {
        this.Data = Data;
        this.Size = JsonConvert.SerializeObject(Data).Length;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我有下面的数据集,我想将列表拆分成多个列表,每个列表应该只有50个字节(例如).

注 - 以 50为例,我的实际大小为1 MB,没有单个消息大于1MB

我试过下面,但是如何计算总大小并按照chunksize去分组,

.GroupBy(x => x.ItemSize / chunkSize)
Run Code Online (Sandbox Code Playgroud)

还是以不同的方式?

var messages = new List<Message>
{
    new Message(new Data{ …
Run Code Online (Sandbox Code Playgroud)

c#

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