所以我一直生活在黑暗的时代,遍历我的数据并找到我感兴趣的老式方式,但这个项目我认为我应该让事情更优雅,并使用LINQ,我知道它可以使用,但事情并没有完全点击.
所以我有两个简单的ObservableCollections,我想从其中一个中提取所有匹配当前所选项目的数据.对象非常简单......
public class foo
{
//....
public string barID{ get; set; }
//....
}
public class bar
{
public string ID { get; set; }
//....
}
Run Code Online (Sandbox Code Playgroud)
所以在我的代码中我有选择的foo,我想要创建一个具有匹配barID的所有条的集合...
ObservableCollection<bar> bars =
from data in fooCollection
where data.barID == barCollection.SelectedItem.ID
select data;
Run Code Online (Sandbox Code Playgroud)
所以我根据我在网上找到的LINQ的语法尝试了这个,但是这会抛出一个无法隐式地将IEnumerable强制转换为ObservableCollection的编译错误.所以我试过......
ObservableCollection<bar> bars =
(ObservableCollection<bar>)
(from data in fooCollection
where data.barID == barCollection.SelectedItem.ID
select data);
Run Code Online (Sandbox Code Playgroud)
哪个编译但会抛出运行时错误...
Unable to cast object of type
'WhereEnumerableIterator`1[TestProj.bar]' to type
'System.Collections.ObjectModel.ObservableCollection`1[TestProj.bar]'.
Run Code Online (Sandbox Code Playgroud)
所以我确信我可以在事后投射对象或做其他事情,但我一直在寻找尽可能优雅的解决方案,所以有点帮助将这个简单的LINQ语句放在一起将不胜感激.此外,对幕后发生的事情的简单解释将极大地帮助我理解一些LINQ基础知识.
我很困惑为什么这两个程序的输出有所不同:
private async void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 33; i++)
{
await LongProcess();
}
}
private async Task LongProcess()
{
await Task.Delay(1000);
progressBar1.Value += 3;
}
Run Code Online (Sandbox Code Playgroud)
和
private async void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 33; i++)
{
await Task.Run(() => LongProcess());
}
}
private async void LongProcess()
{
await Task.Delay(1000);
progressBar1.Value += 3;
}
Run Code Online (Sandbox Code Playgroud)
我意识到返回的第一个例子Task更正确,但我不明白为什么在a Task.Run中包装void函数不会产生相同的输出?第一个功能完成我的预期,每1秒更新一次进度条.第二个代码尝试一次更新进度条,导致尝试从多个线程更新相同的UI元素时出现问题.
我的假设是,因为buttonClick方法等待漫长的过程完成,所以两组代码都不允许progressBar1更新发生,直到前一个过程完成.为什么第二组代码允许它同时发生?
我将iOS更新为iOS 10.3发行版,
我尝试通过safari下载内部应用程序,
但显示以下错误消息(来自设备的日志).
itunesstored(libsystem_network.dylib)[240] <Error>: nw_coretls_callback_handshake_message_block_invoke_3 tls_handshake_continue: [-9812]
itunesstored(CFNetwork)[240] <Notice>: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
itunesstored(CFNetwork)[240] <Error>: HTTP load failed (error code: -1202 [3:-9813])
itunesstored(CFNetwork)[240] <Error>: NSURLSessionTask finished with error - code: -1202
itunesstored[240] <Notice>: LoadExternalDownloadManifestOperation: Request failed with error: <private>
itunesstored[240] <Error>: Could not load download manifest with underlying error: <private>
Run Code Online (Sandbox Code Playgroud)
我测试内部安装在iOS 10.2.1.它安装正确.
但iOS 10.3将显示警报(无法连接到IP).
有谁知道我的情况发生了什么?
非常感谢你.
我正在尝试创建在某些位置透明的视图以查看后面的图像。但是,由于某种原因,在视图的透明部分中,我看到的是黑色,而不是视图的后面。我已经将其精简为很少的代码,并且不明白为什么我的透明视图显示的是黑色而不是红色(后面的视图的颜色)。这是我的代码:
class ViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let redView = UIView(frame: view.frame)
redView.backgroundColor = UIColor.red
let transparentView = TransparentView(frame: view.frame)
view.addSubview(redView)
view.addSubview(transparentView)
}
}
Run Code Online (Sandbox Code Playgroud)
class TransparentView: UIView {
override func draw(_ rect: CGRect) {
UIColor.clear.setFill()
UIRectFill(rect)
}
Run Code Online (Sandbox Code Playgroud)
我希望屏幕显示为全红,但显示为全黑。在有人说清楚视图变得容易得多之前,我实际上是在尝试在drawRect中做更复杂的事情,只是深入到最基本的事情来尝试调试我的问题。我在这里想念什么?
我们可以说textfile是一个数据库吗?我们知道数据库是数据集合,数据库允许轻松检索和操作,但我们可以使用文本文件来完成这些操作.那么文本文件是数据库吗?
所以我似乎无法在任何地方找到一个很好的例子。我从这个从目录中选择随机文件的问题中找到了一个很好的例子,但我需要从目录树(未知深度)中选择一个随机文件。这段代码从 1 个目录中获取一个随机文件,但我对如何将它扩展到所有子目录感到困惑,我相信你们中的一个 LINQ 专家可以帮助我制作一些东西。
var extensions = new string[] { ".mp3" };
var di = new DirectoryInfo(MusicPath);
var rgFiles = di.GetFiles("*.*")
.Where( f => extensions.Contains( f.Extension.ToLower() ));
int fileCount = rgFiles.Count();
if (fileCount > 0)
{
int x = this.Generator.Next( 0, fileCount ); //Generator is 'Random' object
file = rgFiles.ElementAt(x).FullName;
}
Run Code Online (Sandbox Code Playgroud) 所以我已经看到了其他问题,但我不能为我的生活让我的网格格式我的浮动作为货币.这是我的简单项目,它有一个名为gridcontrol1的网格控件,有4列,我希望最后一个是货币,另外3个是字符串.
public partial class Form1 : Form
{
private DevExpress.XtraGrid.GridControl gridControl1;
private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
private DevExpress.XtraGrid.Columns.GridColumn gridColumn1;
private DevExpress.XtraGrid.Columns.GridColumn gridColumn2;
private DevExpress.XtraGrid.Columns.GridColumn gridColumn3;
private DevExpress.XtraGrid.Columns.GridColumn gridColumn4;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ArrayList test = new ArrayList();
test.Add(new MyObject() { myCurrency = 1.5F, prop1 = "hi", prop2 = "hi2", prop3 = "hi3" });
gridColumn4.DisplayFormat.FormatString = "c";
gridColumn4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
gridControl1.DataSource = test;
gridControl1.MainView.PopulateColumns();
gridControl1.RefreshDataSource();
}
}
public class MyObject
{
public string prop1 { …Run Code Online (Sandbox Code Playgroud) 在下面的程序中我使用了这个(1)和这个(2)使用这个(1)和这个(2)的目的是什么,我也想知道这是一个关键字或方法?我是新手java编程语言.
class Const
{
Const()
{
this(1);
System.out.println(1);
}
Const(int x)
{
System.out.println(2);
}
}
class const1 extends Const
{
int a;
const1()
{
this(8);
System.out.println(3);
}
const1(int x)
{
System.out.println(4);
}
public static void main(String s[])
{
new const1();
}
}
Run Code Online (Sandbox Code Playgroud) c# ×4
ios ×2
linq ×2
async-await ×1
asynchronous ×1
currency ×1
database ×1
devexpress ×1
gridcontrol ×1
java ×1
methods ×1
rtsp-client ×1
safari ×1
swift ×1
this ×1
uikit ×1
winforms ×1
wpf ×1