File tree Expand file tree Collapse file tree 2 files changed +28
-15
lines changed Expand file tree Collapse file tree 2 files changed +28
-15
lines changed Original file line number Diff line number Diff line change 33using System . Collections . Generic ;
44using System . IO ;
55using System . Reflection ;
6+ using System . Text ;
67
78namespace DataStructures . Common
89{
@@ -64,8 +65,7 @@ public static PrimesList Instance
6465 /// </summary>
6566 private static void _initializeData ( )
6667 {
67- _primesDocPath = Path . Combine ( Path . GetDirectoryName ( typeof ( PrimesList ) . GetTypeInfo ( ) . Assembly . Location ) , @"Data/PrimesDocument_10K.csv" ) ;
68- string [ ] lines = File . ReadAllLines ( _primesDocPath ) ;
68+ string [ ] lines = _readResource ( "DataStructures.Data.PrimesDocument_10K.csv" ) ;
6969
7070 foreach ( var line in lines )
7171 {
@@ -84,10 +84,28 @@ private static void _initializeData()
8484 }
8585 }
8686
87- /// <summary>
88- /// Return count of primes.
89- /// </summary>
90- public int Count
87+ /// <summary>
88+ /// Reads an embedded resource as a text file.
89+ /// </summary>
90+ /// <returns></returns>
91+ public static string [ ] _readResource ( string resourceName )
92+ {
93+ try
94+ {
95+ using ( var stream = typeof ( PrimesList ) . GetTypeInfo ( ) . Assembly . GetManifestResourceStream ( resourceName ) )
96+ using ( var reader = new StreamReader ( stream ?? throw new InvalidOperationException ( "Failed to read resource" ) , Encoding . UTF8 ) )
97+ return reader . ReadToEnd ( ) . Split ( "\r \n " ) ;
98+ }
99+ catch ( Exception ex )
100+ {
101+ throw new Exception ( $ "Failed to read resource { resourceName } ", ex ) ;
102+ }
103+ }
104+
105+ /// <summary>
106+ /// Return count of primes.
107+ /// </summary>
108+ public int Count
91109 {
92110 get { return _primes . Count ; }
93111 }
@@ -210,5 +228,4 @@ public void CopyTo(int[] array, int index = 0)
210228 }
211229
212230 }
213-
214231}
Original file line number Diff line number Diff line change 22 <PropertyGroup >
33 <TargetFramework >netcoreapp2.0</TargetFramework >
44 </PropertyGroup >
5-
65 <ItemGroup >
7- <Content Include =" Data\PrimesDocument_10K.csv" >
8- <CopyToOutputDirectory >Always</CopyToOutputDirectory >
9- </Content >
6+ <None Remove =" Data\PrimesDocument_10K.csv" />
107 </ItemGroup >
11-
128 <ItemGroup >
13- <None Update =" Data\PrimesDocument_10K.csv" >
14- <CopyToOutputDirectory >Always </CopyToOutputDirectory >
15- </None >
9+ <EmbeddedResource Include =" Data\PrimesDocument_10K.csv" >
10+ <CopyToOutputDirectory >Never </CopyToOutputDirectory >
11+ </EmbeddedResource >
1612 </ItemGroup >
1713</Project >
You can’t perform that action at this time.
0 commit comments