我有以下代码:
public void UpdateCardSetColumn(CARD cardColumn, bool value, string cardId)
{
string strValue = value ? "1" : "0";
sql = $"UPDATE Card SET {cardColumn.Text()} = {strValue}? WHERE CardGuid = '{?cardId}?'";
RunExecute(db2, sql);
}
Run Code Online (Sandbox Code Playgroud)
这里有一个错误 '{cardId
它告诉我
无效的表达术语“
写下面的内容有什么更好的方法?我可以使用Lambda表达式吗?
List<string> managerList = new List<string>();
foreach (Manager m in matchedManager)
{
managerList.Add(m.FullName);
}
Run Code Online (Sandbox Code Playgroud) 我有一堂课:
public class Doc
{
public int Id {get; set;}
public string Name {get; set;}
public bool IsActive {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
和两个列表Doc类型。
IsActive如果包含第二个列表的ID,如何编写LINQ来比较这些列表并更改第一个列表的属性。
我目前正在尝试在 C# 中创建一个图书管理器。我正在使用.ACCDB数据库来存储有关书籍的数据。
首先,我检索bookIDs属于特定系列的 :
sql.CommandText = "select * from BookTable where SeriesID = " +
DataClass.SeriesTableIndex;
Run Code Online (Sandbox Code Playgroud)
它检索BookIDs 20和23。这些是正确BookIDs对应SeriesID于数据库中的。
在此之后,我的代码构建下一个 sql 命令。我省略了命令的功能构建。它构建以下代码:
string sqlcommand = "select * from BookTable where BookID = 23 or 20"
Run Code Online (Sandbox Code Playgroud)
我使用这个命令来获取书名:
sql.CommandText = sqlcommand;
Run Code Online (Sandbox Code Playgroud)
它应该只返回bookWithID23,bookWithID20但它也返回bookWithID21。我的测试数据库中只有 3 本书,但它以某种方式返回了所有 3 本书,而不是系列中的 2 本书。
我对 SQL 一无所知,所以这可能是一个简单的语法错误。
Thread.Sleep()将主线程置于保持一定的毫秒数.我希望Thread.Sleep()阻止主线程,即使它是从不同的线程调用(Task.Run()事实上创建新的线程),为什么当PleaseWait()我的循环在主线程上仍然执行,因为Thread.Sleep被调用?它应该暂停给我.或者是因为事实上,Thread.Sleep()通过Task.Run调用不同的线程现在不完全Thread.Sleep适用于主线程,但它指的是创建的新线程Task.Run.意味着主线程不是睡眠,而是Task.Run侧面创建的线程?希望很清楚.
class Program
{
static void Main(string[] args)
{
Task.Run(() => PleaseWait());
var n = 0;
while (n < 10000)
{
Console.WriteLine(n);
n++;
}
Console.ReadLine();
}
public static void PleaseWait()
{
Thread.Sleep(10000);
Console.WriteLine("After sleep");
}
}
Run Code Online (Sandbox Code Playgroud) [
{
"Title": "TOY STORY 4",
"Genre": "COMEDY",
"Actors": [
"Tom Hanks",
"Tim Allen",
"Annie Potts"
],
"Id": 1
},
{
"Title": "The Matrix",
"Genre": "Action",
"Actors": [
"Keanu Reeves",
"Laurence Fishburne",
"Carrie-Anne Moss"
],
"Id": 2
}
]
Run Code Online (Sandbox Code Playgroud)
我有一个想要转换 C# 对象的 JSON 字符串:
public class Movies1
{
public string Title { get; set; }
public string Genre{ get; set; }
public List<Actor> Actors { get; set; }
public int id { get; set; }
}
public class Actor
{ …Run Code Online (Sandbox Code Playgroud) 返回bool的最佳方法是什么,表示两个逗号分隔的字符串之间是否有任何值匹配?例如:
"1,2,3,4"和"2,5,6,7"返回true,因为两个字符串都有元素2
EX2:
"1,2,3,4"和"5,6,7,8"返回false,因为没有共同的元素
超级简单的问题,在WPF之前非常容易做到,现在我找不到简单的方法。
我正在寻找类似的东西:
foreach(var control in this.FrameworkElements)
{
control.IsEnabled = false;
}
Run Code Online (Sandbox Code Playgroud) 我是 async/await 的初学者,我的代码出现错误,我无法弄清楚如何修复它:
public static Func<string> GetTheID;
void Main()
{
GetTheID = async () => await GetMyId(); //Error here!
Console.WriteLine(GetTheID);
}
public async Task<string> GetMyId()
{
return await Task.Run(() =>
{
return "AAABBBB";
});
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
无法将异步 lambda 表达式转换为委托类型
'Func<string>'。异步 lambda 表达式可能返回void,Task或Task<T>, 其中没有一个可以转换为'Func<string>'
您能否帮助我如何在不更改委托签名的情况下修复此错误GetTheID(我的意思是不将其签名更改为Func<Task<string>>)?